我有一个包含11列的文件,第一列作为主要ID - P1 第二个csv有三列,第一列作为相同的主要ID - P1,但在两个文件中不在同一级别, 我正在使用以下命令合并这两个文件:
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中只获得三列
答案 0 :(得分:1)
您应该看看join
是不是一个更简单的解决方案。输入man join
:
join - join lines of two files on a common field
答案 1 :(得分:0)
如果first.csv有11列而second.csv有3列,那么你的文件顺序错误。试试这样:
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
在本例中,您也没有使用第一列作为键,而是第二列。