다음 2개의 파일 탭을 분리했습니다.
파일 1:
KEY1 TEXT1
KEY2 TEXT2
KEY3 TEXT3
파일 2:
KEY1 111
KEY2 222
KEY3 333
"aaa", "bbb"가 정적 텍스트인 다음 목표를 달성하고 싶습니다.
aaa TEXT1 bbb 111 ccc KEY1 ddd
aaa TEXT2 bbb 222 ccc KEY2 ddd
aaa TEXT3 bbb 333 ccc KEY3 ddd
다음 코드를 실행하고 있습니다.
awk -F'\t' -f vlookup.awk file1 file2
vlookup.awk는 다음과 같습니다.
FNR==NR{
a[$1]=$2
next
}
{ if ($1 in a) { print "aaa", a[$1], "bbb", $2} else {print $1, "ERROR"}}
이것은 첫 번째 부분에서는 작동하지만 "ccc", $1, "ddd"
추가하자마자 결과가 엉망이 됩니다. 예를 들면 다음과 같습니다.
aaa cccXT1 KEY111ddd1
감사합니다 dk
답변1
$ cat vlookup.awk
BEGIN { OFS="\t" }
FNR==NR{
a[$1]=$2
next
}
#{ if ($1 in a) { print "aaa", a[$1], "bbb", $2} else {print $1, "ERROR"}}
{ if ($1 in a) { print "aaa", a[$1], "bbb", $2, "ccc", $1, "ddd" } else {print $1, "ERROR"}}
$ awk -F'\t' -f vlookup.awk file1 file2
aaa TEXT1 bbb 111 ccc KEY1 ddd
aaa TEXT2 bbb 222 ccc KEY2 ddd
aaa TEXT3 bbb 333 ccc KEY3 ddd