Awk 将文件1中的第三列与文件2中的第一列进行模式匹配
我尝试了Awk 将文件1中的第三列与文件2中的第一列进行模式匹配,awk,Awk,我尝试了Awkas awk -F, 'FNR==NR{a[$1]=$1;next} {print (($1 in a) ? $0","a[$1] : $0",NA");}' cat f1.txt FOO,LONDON,45,789 GOO,US,46,9876 cat f2.txt 45,ONE 47,SECOND 结果像 FOO,LONDON,45,789,ONE GOO,US,46,9876,NA 您可以使用此awk: awk -F, 'FNR==NR{
Awk
as
awk -F, 'FNR==NR{a[$1]=$1;next} {print (($1 in a) ? $0","a[$1] : $0",NA");}'
cat f1.txt
FOO,LONDON,45,789
GOO,US,46,9876
cat f2.txt
45,ONE
47,SECOND
结果像
FOO,LONDON,45,789,ONE
GOO,US,46,9876,NA
您可以使用此
awk
:
awk -F, 'FNR==NR{a[$1]=$2;next} {print (($3 in a) ? $0","a[$3] : $0",NA");}' f2 f1
(或)
有些问题是:
-应该是a[$1]=$1
a[$1]=$2
-应该是($1在a中)
($3在a中)
(一个$3)
-这个就可以了$1
数组(a
)进行比较。它如何从文件2打印列3以及如何从文件2打印附加列
awk -F, 'FNR==NR{a[$1]=$2;next} {$(NF+1)=($3 in a)?a[$3]:"NA"}1' OFS=, f2 f1