我看到有一些方法可以打印两个搜索模式之间的行,如此处所述如何 grep 开始和结束模式之间的行?
sed -n '/aaa/,/cdn/p' file
awk '/test1/,/test2/'
我需要对上述内容进行否定,并且发现很难使用标准 unix 命令 grep/sed/awk 获得正确的命令/解决方案。
grep -v
排除与单词匹配的行,但不排除两个特定正则表达式之间的所有行。
有什么提示吗?
答案1
尝试
sed '/aaa/,/cdn/d' file
或者
awk '/test1/,/test2/{next} {print}'
或者(更紧凑)
awk '/test1/,/test2/{next} 1'
默认情况下打印每条记录(行),除非它匹配,/test1/,/test2/
在这种情况下它会跳到下一个记录。