2015-10-18 149 views
0

我有一個文件,包含11列,第一列作爲主ID - P1 第二個csv,包含三列,第一列爲相同的主ID - P1,儘管不在同一級別在這兩個文件, 我用合併以下命令這兩個文件:使用基於公共列的awk合併兩個csv文件

awk 'NR==FNR {h[$2] = $3; next} {print $1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,h[$2]}' first.csv second.csv > final.csv 

然而,在獲得新的CSV只有三列

回答

1

您應該看到,如果join不會是一個簡單的解決方案。鍵入man join爲:

join - join lines of two files on a common field 
+0

我已經使用了連接-t,<(sort -t,-k1 second.csv)<(sort -t,-k1 first.csv)> third.csv,但它給出了非法的字節序列錯誤 – aquaabhi

0

如果first.csv有11列和second.csv有三個,那麼你有你的文件在錯誤的順序。嘗試是這樣的:

awk 'NR==FNR {h[$2] = $3; next} {print $1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,h[$2]}' second.csv first.csv > final.csv 

您也沒有使用第一列作爲這個例子中的鍵,但第二個。