ファイル1:
01 999 234 432 666
02 888 453 234 763
03 145 334 235 456
04 234 784 482 785
05 868 453 546 787
ファイル2:
01
01
02
03
03
05
これは、2つのファイルの最初の列を一致させ、次のような期待される出力を取得したいからです。
予想出力:
999 234 432 666
999 234 432 666
888 453 234 763
145 334 235 456
145 334 235 456
868 453 546 787
次のコードを試しました。
awk 'NR==FNR{a[$1]=$1; next} {if($1 in a) {print $2" "$3" "$4" "$5}}' file2 file1
しかし、私が得ることはこれです:
999 234 432 666
888 453 234 763
145 334 235 456
868 453 546 787
それでは、awkを使用して予想される出力をどのように取得しますか?
答え1
最初のファイルからルックアップテーブルを作成し、2番目のファイルからインデックスを作成する必要があります。
$ awk 'NR==FNR {a[$1] = $2 FS $3 FS $4 FS $5; next} {print a[$1]}' file1 file2
999 234 432 666
999 234 432 666
888 453 234 763
145 334 235 456
145 334 235 456
868 453 546 787
または、
join -o1.2,1.3,1.4,1.5 file1 file2