2つのファイルがあり、各ファイルには複数の列があり、行番号は同じではありません。 2 つのファイルの 3 番目の列を読み取り、同じであることを確認し、2 つのファイルの 4 番目の列を比較して、最大数と 3 番目のファイルの行全体を印刷します。他のファイルに見つからない行の場合でも、これを最も高い数字として使用してください。
ファイルA
a b c 10
d e f 11
g h i 15
j k l 15
p l m 35
フライB
d e f 15
j k l 20
w x z 40
希望の出力
ファイルC
a b c 10
d e f 15
g h i 15
j k l 20
p l m 35
w x z 40
ベストアンサー1
このように:
awk '$4>n[$3]{n[$3]=$4;l[$3]=$0}END{for(i in l)print l[i]}' file_a file_b > file_c
説明: 4 番目の列がn
同じ 3 番目の列 (配列にある) の記憶された最大値より大きい場合、新しい 4 番目の列とその 3 番目の列l
(配列にある) の行全体が記憶されます。最後に記憶されたすべての行を印刷します。