我的测试文件是
1599027 48.5
1599027 29.7
1599028 49.9
1599028 19.4
1599029 49.5
1599026 19.2
1599026 19.2
由此我需要从第一列获取数字,该数字在所有代表行中第二列值应<30。在上面的测试文件中,只有一个数字“1599026”符合上述条件(列出的行都是19.2 < 30)。第一列中的另外两个数字在其中一行中有 >30。
答案1
$ awk '{ sum[$1] += ($2 >= 30) } END { for (i in sum) if (!sum[i]) print i }' file
1599026
这用于awk
为名为 的文件中数据第一列中的每个唯一数字创建总和file
。数字的总和是第二列的值大于或等于 30 的次数。
在代码的末尾awk
,在END
块中,打印所有总和为零的数字。