在grep中组合-v标志和-A标志

Dan*_*age 9 unix grep sed

我需要在文件中搜索字符串,删除包含该字符串的任何行,并删除包含该字符串的任何行后面的两行.我希望我能用这样的东西来完成这个......

$ grep -v -A 2 two temp.txt
one
five
$
Run Code Online (Sandbox Code Playgroud)

......但不幸的是,这不起作用.有一个简单的我可以使用grep或其他shell命令吗?

小智 5

以下适用于GNU sed和OS X.

$ sed '/two/{N;N;d;}' temp.txt
one
five
Run Code Online (Sandbox Code Playgroud)
  • 找到行匹配 two
  • 再读两行
  • 删除它们

  • 在d和之后添加分号.强制支撑,它也适用于MacOS X. (2认同)