最後の列の値に基づいて2つのファイルを比較します。

最後の列の値に基づいて2つのファイルを比較します。

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(配列にある) の行全体が記憶されます。最後に記憶されたすべての行を印刷します。

おすすめ記事