我想使用一个正则表达式来查找文本中的所有行,除了我用正则表达式传递的行。我在这里找到了一个有用的代码,在这里输入链接描述awk '/.*test.*/{f=1}f;/end/{f=0}' myFile
。我想反过来使用它。
我的意思是我不想看到test和end之间的线条,但我想看到其他线条。
我想在Linux环境中执行此操作。
我怎样才能否定这些AWK
?
要查看 和 之间的所有行first
,end
包括:
awk '/first/,/end/'
要反转:
awk '/first/,/end/{next}1'
(对于第二个示例,可读性更强:awk '/first/,/end/{next}{print}'
。上面的版本取决于 awk 的默认操作{print}
;1
相当于true
。)
有些像这样
awk '/test/ {f=1} !f; /end/ {f=0}' file
它将打印所有行,直到找到test
,然后在找到后再次开始打印end
。
sed
更适合这个:
sed '/first/,/end/d'
将删除与模式匹配的行之间的所有行,first
直到第一行与模式匹配end
。