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)
由于键是数字,您可以通过向其添加零来截断非数字部分,即。"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)
| 归档时间: |
|
| 查看次数: |
67 次 |
| 最近记录: |