【发布时间】:2014-01-03 08:39:32
【问题描述】:
我需要在文件中匹配之前打印前两行(对于任何匹配) 如何制作?
谢谢
【问题讨论】:
-
为什么需要
sed?可以使用awk甚至更好的grep -B来完成
标签: sed
我需要在文件中匹配之前打印前两行(对于任何匹配) 如何制作?
谢谢
【问题讨论】:
sed?可以使用awk 甚至更好的grep -B 来完成
标签: sed
脚本:
sed -n "1N;2N;/XXX[^\n]*$/{h;s/\n[^\n]*$//;p;g};N;D"
工作如下:
1N;2N
XXX,如果找到:将模式空间保存在保持空间h,删除最后一行s,打印p,然后恢复保存的字符串g
N
D,注意 1N;2N 不再适用【讨论】:
sed 仔细检查了我的解决方案,它工作正常。你用的是什么版本的sed?
如果你不坚持用sed,就用
grep -B 2
【讨论】: