我想使用一个正则表达式来查找文本中的所有行,除了我用Regex传递的行。我在这里找到了一个有用的代码enter link description here awk '/.*test.*/{f=1}f;/end/{f=0}' myFile
。我想反过来使用它。
我的意思是我不想看到测试和结束之间的界限,但我希望看到其他行。
我想在 Linux 环境中执行此操作。
我如何否定这些AWK
?
答案 0 :(得分:1)
要查看first
和end
之间的所有行,包括:
awk '/first/,/end/'
反转:
awk '/first/,/end/{next}1'
(稍微更可读的是,对于第二个示例:awk '/first/,/end/{next}{print}'
。上面的版本取决于awk的默认操作{print}
; 1
相当于true
。)< / p>
答案 1 :(得分:0)
有些人喜欢这个
awk '/test/ {f=1} !f; /end/ {f=0}' file
它会打印所有行,直到找到test
,然后在找到end
后再次开始打印。
答案 2 :(得分:0)
sed
更适合这个:
sed '/first/,/end/d'
将删除与模式first
匹配的行之间的所有行,直到匹配模式end
的第一行。