2つのファイルがあります。
ファイル1
212 21 24.8 13.8354303 15.2841303
258 21 22.2 15.8507278 17.2994278
270 21 27.8 13.0482192 14.4969192
204 21 22.4 13.9465939 15.3952939
248 21 16.6 9.2714745 11.6494745
279 21 22.8 12.9151566 15.2931566
ファイル2
212 21 24.8 1.03 2.8954
258 21 22.2 1.03 2.8954
270 21 27.8 1.05 2.9154
204 21 22.4 1.21 3.0754
248 21 16.6 1.29 3.1554
279 21 22.8 1.47 3.3354
次の方法で両方に参加する必要があります。
212 21 24.8 13.8354303 15.2841303 1.03 2.8954
258 21 22.2 15.8507278 17.2994278 1.03 2.8954
270 21 27.8 13.0482192 14.4969192 1.05 2.9154
204 21 22.4 13.9465939 15.3952939 1.21 3.0754
248 21 16.6 9.2714745 11.6494745 1.29 3.1554
279 21 22.8 12.9151566 15.2931566 1.47 3.3354
しかし、私は次のawk
コマンドを使用しました。
awk 'NR==FNR{a[$1]=$4 FS $5;next}$1 in a{print $1,$2,$3,$4,$5,a[$1]}' File2 File1 > output
私はこのファイルを得ました:
出力
212 21 24.8 13.8354303 15.2841303
1.03 2.8954
258 21 22.2 15.8507278 17.2994278
1.03 2.8954
270 21 27.8 13.0482192 14.4969192
1.05 2.9154
204 21 22.4 13.9465939 15.3952939
1.21 3.0754
248 21 16.6 9.2714745 11.6494745
1.29 3.1554
279 21 22.8 12.9151566 15.2931566
1.47 3.3354
何が間違っているのかわかりません。私のファイルには約400行があります。
ベストアンサー1
データがソートされたと仮定すると、この場合はjoin
次のコマンドを使用します。
join -o 1.1 1.2 1.3 1.4 1.5 2.4 2.5 file1.txt file2.txt
212 21 24.8 13.8354303 15.2841303 1.03 2.8954
258 21 22.2 15.8507278 17.2994278 1.03 2.8954
270 21 27.8 13.0482192 14.4969192 1.05 2.9154
204 21 22.4 13.9465939 15.3952939 1.21 3.0754
248 21 16.6 9.2714745 11.6494745 1.29 3.1554
279 21 22.8 12.9151566 15.2931566 1.47 3.3354
スタイルを使用してフォーマットすることができます-o
。x.y
ここではx
ファイルで、y
フィールドです。