[英]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.