2つのファイルがあり、1つは区切り文字を持ち、もう1つは場所ファイルです。
両方のファイルは以下のように同じ一意のIDを共有しますが、両方のファイルには異なる情報が含まれています。
del.txt
11111|abc|01|||||||||
22222|xyz|09|||||||||
pos.txt
11111 abc newyork US
22222 xyz dallas US
del.txtファイルは、一意のメンバーID、その後に区切られた名前、および代替IDで構成されます。 (区切り付き)および類似のpos.txt(位置形式の代替IDを除く)。
以下のように、2つのファイルの一意のメンバーIDが一致する場合にのみ、pos.txtに代替IDを挿入したいと思います。
pos.txt
11111 abc newyork US 01
22222 xyz dallas US 09
シェルスクリプトを使用してこれを達成するにはどうすればよいですか?
答え1
この問題に対する最善のアプローチは、次を使用することですawk
。
$ awk -F'[ |]' 'FNR==NR{a[$1]=$3;next}($1 in a){print $0" "a[$1]}' del.txt pos.txt
11111 abc newyork US 01
22222 xyz dallas US 09