我想要以@
开头的行,以及以//
开头的行后跟以@
开头的行
示例:
//text1
@text2
text3
结果:
//text1
@text2
如何使用grep或任何其他基本的unix工具执行此操作?
答案 0 :(得分:2)
perl -ne 'print( $z . $_ ) if m{^\@}; $z=(m{^//} ? $_ : "");'
这个单行一次处理STDIN一行。
如果找到以@
开头的行,则会转储$z
后跟当前行的内容。
然后,如果它检测到以//
开头的行,则会将该行保存在变量$z
中。如果该行不以$z
开头,则//
变量将被清除。
我已经给了这个快速测试,应该完成所要求的工作。
grep
工具不记得行之间的状态。