1

OK私はこの質問を見つけました:

sedを使用して、一致する行、その上と下の行を削除するにはどうすればよいですか?

そして、文字列に一致する何かを書き、文字列を含む行とその下の行を削除するために最後の1時間を費やしました(またはバリアント-その下の2行を削除します)。

ランダムな文字列を入力しているように感じます。誰か助けてください。

4

2 に答える 2

4

私がそれを正しく理解していれば、マッチラインと1行後に削除するには

/matchstr/{N;d;}

マッチラインとその後の2ライン

/matchstr/{N;N;d;}
  • N次の行を取り込みます
  • d- 結果の単一行を削除します
于 2010-01-13T23:56:47.737 に答える
0

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
于 2010-01-14T00:44:55.713 に答える