Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Awk 将文件1中的第三列与文件2中的第一列进行模式匹配_Awk - Fatal编程技术网

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中)

比较如何?@sam_84,
(一个$3)
-这个就可以了$3与f2的
$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