繁体   English   中英

打印大于两个字段的行

[英]Print Lines That Are Greater Than Two Fields

我对grep ,但我知道awk在这种情况下可能更有效。 我正在学习,但还没有到那里。

我有一些数据:

record1,14.2,10,50
record2,10.7,5,-
record3,9.3,6.8,10
record4,8,2.7,10
record5,5.5,22.4,10
record6,3,23.6,55
record7,2.7,14.6,-

我只想打印字段 3 中大于 7 且字段 4 中大于 10(同时删除任何破折号)的行。因此,输出将是这样的:

record1,14.2,10,50
record6,3,23.6,55

我已经尝试过使用awk '{print $3 > 7}' ,但是,就像我说的,我对awk和条件并不擅长。 我可以用 grep 做到这一点,但我觉得这效率低下。 任何帮助是极大的赞赏。

awk 脚本的结构是condition { action } 默认操作是{ print } ,它打印整个记录。

  • 您的条件是$3 > 7$4 > 10
  • 您的字段分隔符是逗号。

结合这些我们得到:

awk -F, '$3 > 7 && $4 > 10' file

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM