2つのファイルがあります。1つは区切り文字で、もう1つは位置ファイルです。
これらの2つのファイルは、以下に示すように同じ一意の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を除いて、名前とともに一意のIDがあります。
以下に示すように、両方のファイルで一意のメンバーIDが一致する場合にのみ、pos.txtに代替IDを挿入したい
pos.txt
11111 abc newyork US 01
22222 xyz dallas US 09
シェルスクリプトを使用してこれをどのように達成できますか?
この問題では、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