シェルを使用した熱交換

シェルを使用した熱交換

一致するものが見つかったら、列1をFile1列2にどのように置き換えますか?File2

File1
id1 36987
id2 75685
id3 12345
id4 12896

File2
id1 ID1
id2 ID2
id3 ID3
id5 ID5

私はこれを他のものの上に書きたいと思いますFile3。次のようにする必要があります。

File3
ID1 36987
ID2 75685
ID3 12345
id4 12896

私が現在試しているもの(失敗):

sed `File2.txt | awk '{print "-e s/"$1"/"$2"}'`<<< "File1.txt" 

答え1

そしてawk

$ awk 'NR==FNR {a[$1]=$2; next}; a[$1] {$1=a[$1]} 1' File2 File1
ID1 36987
ID2 75685
ID3 12345
id4 12896

答え2

sed生成に使用するスクリプトはsed次のとおりです。

sed 's=^=s/=;s= =/=;s=$=/=' File2 | sed -f- File1

関連情報