我将以下 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