我需要在文件内匹配之前打印前两行(对于任何匹配) 如何制作?
谢谢
答案 0 :(得分:3)
如果您不坚持使用sed,请使用
grep -B 2
答案 1 :(得分:3)
剧本:
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
不再适用