OK私はこの質問を見つけました:
sedを使用して、一致する行、その上と下の行を削除するにはどうすればよいですか?
そして、文字列に一致する何かを書き、文字列を含む行とその下の行を削除するために最後の1時間を費やしました(またはバリアント-その下の2行を削除します)。
ランダムな文字列を入力しているように感じます。誰か助けてください。
OK私はこの質問を見つけました:
sedを使用して、一致する行、その上と下の行を削除するにはどうすればよいですか?
そして、文字列に一致する何かを書き、文字列を含む行とその下の行を削除するために最後の1時間を費やしました(またはバリアント-その下の2行を削除します)。
ランダムな文字列を入力しているように感じます。誰か助けてください。
私がそれを正しく理解していれば、マッチラインと1行後に削除するには
/matchstr/{N;d;}
マッチラインとその後の2ライン
/matchstr/{N;N;d;}
N
次の行を取り込みますd
- 結果の単一行を削除しますawk を使用できます。たとえば、「two」という単語を検索し、その後の 2 行をスキップします。
$ cat file
one
two
three
four
five
six
seven
eight
$ awk -vnum=2 '/two/{for(i=0;i<=num;i++)getline}1' file
one
five
six
seven
eight