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가 일치하는 경우에만 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