次のファイルがあります。
apple 1
apple 2
mango 3
apple 2
mango 4
mango 5
apple 3
apple 4
cherry 6
cherry 7
cherry 8
apple 5
cherry 9
apple
1行にawkまたはsedを使用して2行目を保持するパターンに一致する連続行を削除したいと思います。また、パターンと一致しない残りの行を維持し、次のような出力を取得したいと思います。
apple 2
mango 3
apple 2
mango 4
mango 5
apple 4
cherry 6
cherry 7
cherry 8
apple 5
cherry 9
ベストアンサー1
awkスクリプトの追加最適化:
awk '$1=="apple"{l=$0;next}l{print l; l=""}1' file
これはl
、パターンに一致する行を変数に保存することに依存しますapple
。保存された行は、パターンが見つからない場合にのみ印刷されます。