file1中第3列的模式匹配,file2中的第一列

时间:2017-01-16 07:17:29

标签: awk

我尝试Awk作为

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  

1 个答案:

答案 0 :(得分:0)

您可以使用此awk

awk -F, 'FNR==NR{a[$1]=$2;next} {print (($3 in a) ? $0","a[$3] : $0",NA");}' f2 f1

(OR)

awk -F, 'FNR==NR{a[$1]=$2;next} {$(NF+1)=($3 in a)?a[$3]:"NA"}1' OFS=, f2 f1

有些问题是:

  • a[$1]=$1 - 应为a[$1]=$2
  • ($1 in a) - 应为($3 in a)