私のテストファイルは
1599027 48.5
1599027 29.7
1599028 49.9
1599028 19.4
1599029 49.5
1599026 19.2
1599026 19.2
ここでは、すべての代表行の2番目の列の値が<30でなければならない最初の列の数を取得する必要があります。上記のテストファイルでは、1つの数字「1599026」のみが上記の条件を満たしています(すべての列は19.2 < 30です)。最初の列の他の2つの数字は、行の1つで> 30を持ちます。
答え1
$ awk '{ sum[$1] += ($2 >= 30) } END { for (i in sum) if (!sum[i]) print i }' file
1599026
awk
これは、名前付きファイル内のデータの最初の列にある各一意の数値の合計を生成するために使用されますfile
。数値の合計は、2 番目の列の値が 30 以上の回数です。
コードの終わりのブロックawk
で、合計がゼロになるすべての数字を印刷します。END