我的日志文件中包含以下内容。
abcdefg hijk lmnopq
rstuv wxyz
我尝试编写一个查找 wxyz 的命令,并且只有在前一行不包含字符串 HIJK
我写了一个grep命令,但它没有工作,因为它是一个面向行的命令。看起来我必须使用awk或sed。有什么建议吗?
答案 0 :(得分:1)
awk
救援!
这前后两行,你应该可以改为三......
$ awk '/hijk/{h=NR}
/wxyz/&&NR!=(h+1){print p2 ORS p1; w=3}
{p2=p1;p1=$0}
w&&w--' file
也没有处理第一行匹配到wxyz。对于/wxyz/ && (NR!=(h+1) || !h)
的更改,需要调整打印p2和p1。