与第二个 awk 比较后无法替换文件

Ana*_*Ana 1 regex awk text-processing

我试图比较两个文件,然后用第二个文件中的匹配内容替换第一个文件的内容。

第一个文件:

14523 : NOT
98765 : OTH
23145 : UNT
65743 : NOT
Run Code Online (Sandbox Code Playgroud)

第二个文件:

23145vec#1
14523vec#2
65743vec#3
98765vec#4
Run Code Online (Sandbox Code Playgroud)

输出应该是这样的:

23145vec#1 : UNT
14523vec#2 : NOT
65743vec#3 : NOT
98765vec#4 : OTH
Run Code Online (Sandbox Code Playgroud)

我试图做的是:

awk 'NR==FNR { F2[$1] = $1 } ($1 in F2){print F2[$1] = $1" : "$2; next} ' file2 file1 > final.txt
Run Code Online (Sandbox Code Playgroud)

结果 :

23145vec#1 :
14523vec#2 :
65743vec#3 :
98765vec#4 :
Run Code Online (Sandbox Code Playgroud)

Jam*_*own 5

由于键是数字,您可以通过向其添加零来截断非数字部分,即。"23145vec#1"+0=23145

$ awk '
NR==FNR {
    a[$1]=$3
    next
}
(k=($1+0)) in a {
    printf "%s : %s\n",$1,a[k]
}' file1 file2
Run Code Online (Sandbox Code Playgroud)

输出:

23145vec#1 : UNT
14523vec#2 : NOT
65743vec#3 : NOT
98765vec#4 : OTH
Run Code Online (Sandbox Code Playgroud)