파일 1.txt
age name city
23 ABC delhi
25 xyz mumbai
12 xxx pune
21 YYY delhi
파일 2.txt
city pincode
delhi 001
mumabi 002
pune 003
file1의 도시 열을 pincode로 바꿔야 합니다 file2
. 중복된 항목도 제출해야 합니다.
age name pincode
23 ABC 001
25 xyz 002
12 xxx 003
21 YYY 001
답변1
사용 awk
:
awk 'NR==FNR{a[$1]=$2}NR>FNR{if($3 in a){print $1,$2,a[$3]}}' file2 file1
age name pincode
23 ABC 001
25 xyz 002
12 xxx 003
21 YYY 001
답변2
다음 awk
절차가 도움이 될 것입니다.
#!/usr/bin/awk -f
FILENAME == "file2.txt" {
if (FNR > 1) {
city[$1]=$2
}
}
FILENAME == "file1.txt" {
if (FNR > 1 ) {
print($1, $2, city[$3])
} else {
print
}
}
매핑을 먼저 빌드한 다음 교체해야 하므로 file2.txt
스크립트 를 실행할 때 먼저 제공해야 합니다 .file1.txt
산출
$ ./city.awk file2.txt file1.txt
age name city
23 ABC 001
25 xyz 002
12 xxx 003
21 YYY 001