쉘을 사용하여 열 교체

쉘을 사용하여 열 교체

일치하는 항목이 발견되면 열 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

관련 정보