簡體   English   中英

AWK 比較兩個文件並打印單個列

[英]AWK comparing two files and printing individual columns

我需要幫助使用 awk 腳本比較兩個文件。 將 file1.csv 的第二列與 file2.csv 的第一列進行比較,如果匹配,則以以下預期格式打印該行。

文件1.csv

abc,id123,newyork
bcd,id456,seattle

文件2.csv

id678,bbb,ccc
id123,hhh,ddd

期望格式:

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以獲得完全格式化的輸出。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM