【问题标题】:AWK: print only lines not matching the defined patternAWK:只打印与定义的模式不匹配的行
【发布时间】:2017-07-04 02:21:21
【问题描述】:

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

有没有简单的方法来做到这一点?

非常感谢

【问题讨论】:

  • 在其前面贴上! 或将比较从> 更改为<=
  • 改对比作品,没想到!谢谢

标签: regex awk


【解决方案1】:

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

【讨论】:

  • 并不是我认为逻辑否定是最好的写法,但我想建议应该是“在它前面贴上!并在NF>7周围加上括号",否则你只需评估!NF
【解决方案2】:

如果您不习惯使用 Awk,GNU Grep 可以做到: 代码:

grep -Ev '<your regex>'

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

【讨论】:

  • 这只适用于正则表达式。 NF &gt; 7 不完全是一个正则表达式(虽然你可以编写一个具有相同效果的正则表达式,但它不会那么紧凑)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-10-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-15
  • 2022-01-16
  • 1970-01-01
相关资源
最近更新 更多