AWK比较两个文件并打印单个列

AWK比较两个文件并打印单个列,awk,Awk,我需要使用awk脚本比较两个文件的帮助。比较file1.csv的第二列与file2.csv的第一列,如果匹配,则按以下预期格式打印行 file1.csv abc,id123,newyork bcd,id456,seattle 文件2.csv id678,bbb,ccc id123,hhh,ddd expecte格式: abc,id123,hhh,newyork,{hhh,ddd},ddd 到目前为止,我能够打印以下内容 abc,id123,newyork,hhh,ddd 使用以下awk

我需要使用awk脚本比较两个文件的帮助。比较file1.csv的第二列与file2.csv的第一列,如果匹配,则按以下预期格式打印行

file1.csv

abc,id123,newyork
bcd,id456,seattle
文件2.csv

id678,bbb,ccc
id123,hhh,ddd
expecte格式:

abc,id123,hhh,newyork,{hhh,ddd},ddd

到目前为止,我能够打印以下内容

abc,id123,newyork,hhh,ddd
使用以下awk

$ awk -F, 'FNR==NR{f1[$2]=$0; next} $1 in f1 {print f1[$1] "," $2 "," $3}' file1.csv file2.csv
你很接近。尝试:

$ awk -F, 'FNR==NR{f1[$2]=$1; f3[$2]=$3; next} $1 in f1 {printf "%s,%s,%s,%s,{%s,%s},%s\n",f1[$1],$1,$2,f3[$1],$2,$3,$3}' file1.csv file2.csv
abc,id123,hhh,newyork,{hhh,ddd},ddd
这里的关键补充是使用第二个数组
f3
捕获输入,并
printf
获得完全格式化的输出