我有这个文件
START1
1
2
END1
START2
error
1
2
END2
START3
1
2
END3
我要是error
找到的话 sed
提取整张并打印
例如输出是
START2
error
1
2
END2
因为error
在START2
和之间找到END2
仅用sed
?!怎么解决?
使用sed
:
sed -n ':a;/START/,/END/{/END/!{$!{N;ba;}};/error/p;}' inputfile
想法是继续在两个指定地址之间的模式空间中添加行。如果找到了正则表达式(error
在这种情况下为字符串),则打印该块。-n
除非明确指定,否则不会打印任何内容。
对于您的样本输入,它将产生:
START2
error
1
2
END2
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句