次のフィールドを含むファイルがあります。
NM001 rp1 210
NM003 rp1 220
NM005 rag 200
NM004 rag 100
列 2 の各変更について、列 4 で最大値を探し、その列 1 も報告する出力を得たいと思います。これまで、列2と3は報告していますが、列1の数字が異なるため、列1は報告しない解決策を見つけました。私はawkを使うのが好きです。
出力は
NM003 rp1 220
NM005 rag 200
ベストアンサー1
awkを使うと簡単です。
2番目の列の各値の最大値を追跡する必要があり、各行全体を最大値に保ちたいとします。
awk '
$3 > maxvals[$2] {lines[$2]=$0; maxvals[$2]=$3}
END { for (tag in lines) print lines[tag] }
'
出力はソートされていないため、特定のsort
順序が必要な場合は入力をパイプします。