AWK:仅打印与定义的图案不匹配的线条

时间:2017-07-03 17:55:22

标签: regex awk

我想让AWK只打印与以下模式不匹配的打印行:  awk -F'-' 'NF>7'
(其中 - 出现超过7次的行)

有一种简单的方法吗?

非常感谢

3 个答案:

答案 0 :(得分:3)

在其前面粘贴!或将比较从>更改为<=

答案 1 :(得分:0)

如果你不喜欢使用Awk,那么GNU Grep可以做到: 代码:

{{1}}

-v选项表示显示不匹配的行,-E表示使用扩展正则表达式

答案 2 :(得分:0)

仅使用awk也可以采用不同的方法。

awk 'gsub(/-/,"-")>=7'   Input_file

说明:全局用短划线代替短划线并检查它的计数是否大于或等于7,如果是,则打印该行。因此awk适用于条件/动作样式,如果任何条件为TRUE,则动作应按照所述样式发生,因此这里没有提到的动作,因此默认打印将发生在当前行或记录中。我希望这会对你有所帮助。