次のファイルがあります。
1 7.8e-12
1 7.8e-12
1 1.0e-11
2 9.3e-13
2 3.5e-12
2 3.5e-10
2 3.1e-9
3 3.0e-11
3 3.0e-11
3 1.7e-08
最初の列の各値について、2番目の列の最小値を持つ「すべての行」を選択し、最初の列に基づいてグループ化したいと思います。したがって、希望の出力は次のようになります。
1 7.8e-12
1 7.8e-12
2 9.3e-13
3 3.0e-11
3 3.0e-11
これを行う方法を知っていますか?
ベストアンサー1
1つの方法は、昇順にソートしてから、各col1の最初のcol2値を記録し、現在のcol2値が等しいかどうかを印刷することです。
sort -k1,1n -k2,2g file | awk '!a[$1] {a[$1] = $2} $2 == a[$1]'
1 7.8e-12
1 7.8e-12
2 9.3e-13
3 3.0e-11
3 3.0e-11