私が次のことをすると仮定しましょう。
grep 'header\|error'
今、私は空のヘッダー「セクション」をすべて削除したいと思います。たとえば、次のような出力が必要です。
header 1
header 2
error a
error b
header 3
error c
header 4
header 5
error d
~になる
header 2
error a
error b
header 3
error c
header 5
error d
ベストアンサー1
入力が示されているのと同じであると仮定します。つまり、すべての入力行は「タイトル」または「エラー」の行であり、他に何もありません。
これは働きます:
$ cat test.sh
grep -B1 --no-group-separator ^error << EOF
header 1
header 2
error a
error b
header 3
error c
header 4
header 5
error d
EOF
$ ./test.sh
header 2
error a
error b
header 3
error c
header 5
error d
スクリプトは、「error」で始まる各行を印刷し、その前の行を印刷します。