次の行にも内容がある場合は、その行を削除してください。

次の行にも内容がある場合は、その行を削除してください。

私はサンプルを持っています:

This is a test
localhost% This is a test

最初のエントリはThis is a test次の行のtxtファイルに再び現れ、localhost%その前にいくつかの文字があります。This is a test次の行に次の内容が含まれている場合は、最初の行を削除したいと思います。<arbitrary characters>% This is a test

だから、2つの行をチェックし、前の行が次のThis is a test行と一致する場合localhost% This is a test(注%)、前の行を削除したいと思います。

どうすればいいですか?

ベストアンサー1

おそらく:

sed '$!N;/^\(.*\)\n.*% \1$/!P;D'

つまり、withを使用してsedスクロール2行パターン空間を処理することによって、()の後の2行目の最後に最初の行が見つかる(キャプチャ)、最初の行が削除されます(印刷せずにスキップ())。それ)。ND!P\(...\)\1$"% "

これは次のような場合にも機能します。

This is a test
foo% This is a test
bar% foo% This is a test

(最初の2行削除)

おすすめ記事