当 $1 的第一个值 ($3) 大于 7 时,我需要删除 $1 的所有记录。$1 和 $3 已排序。
原文内容:
101 26 5
101 29 6
101 20 7
104 26 1
104 23 2
105 28 2
105 25 3
108 28 9
108 27 10
期望的输出:
101 26 5
101 29 6
101 20 7
104 26 1
104 23 2
105 28 2
105 25 3
答案1
要过滤掉第 3 列中的值大于或等于 7 的所有输入行:
$ awk '$3 < 7 { print }' <data.in >data.out
只要条件(“字段(列)3 中的值小于 7”)为真,Awk 脚本就会$3 < 7 { print }
执行print
,输出整个记录(行) 。$3 < 7
对于您的数据,这会产生一个data.out
包含以下内容的文件
101 26 1
101 29 2
101 20 3
104 26 1
104 23 2
105 28 2