Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
ファイルで文字列を検索し、文字列を含む行を削除し、文字列を含む行に続く 2 行も削除する必要があります。このようなものを使用してこれを達成できることを望んでいました...
$ grep -v -A 2 two temp.txt one five $
...しかし、残念ながらこれはうまくいきませんでした。grepまたは別のシェルコマンドでこれを行うことができる簡単なものはありますか?
これを Perl で行う方法は次のとおりです。
$ perl -ne'if (/two/){$x=<>;$x=<>;}else{print}' temp.txt one five
これ-nは、入力に対する暗黙のループです。に一致する場合/two/は、次の 2 行を読みます。そうでない場合は、現在の行を印刷します。
-n
/two/
ただし、問題は、3 行目または 4 行目が /two/ に一致した場合でも、同じ出力が得られることです。@paxdiabloのソリューションはより完全です。しかし、私のものはもっと Q&D です。