当找到匹配项时,如何将第 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