我有兩個文件,其中$3,$4 = $3,$2
。awk根據鍵值匹配併合並兩個文件
文件1:
1211,A2,ittp,1,IPSG,a2,PA,3000,3000
1311,A4,iztv,1,IPSG,a4,PA,240,250
1411,B4,iztq,0,IPSG,b4,PA,230,250
文件2:
TP,0,nttp,0.865556,0.866667
TP,1,ittp,50.7956,50.65
TP,1,iztv,5.42444,13.8467
TP,0,iztq,645.194,490.609
我想合併這些文件並打印新的文件一樣,如果file1 $3,$4 = file2 $3,$2
然後打印合並文件中像
TP,1211,A2,ittp,1,IPSG,a2,PA,3000,3000,0.865556,0.866667
TP,1311,A4,iztv,1,IPSG,a4,PA,240,250,50.7956,50.65
TP,1411,B4,iztq,0,IPSG,b4,PA,230,250,5.42444,13.8467
兩個文件是CSV文件。
我嘗試使用awk
但我沒有得到所需的輸出。它只打印file1。
$ awk -F, 'NR==FNR{a[$3,$4]=$3$2;next}{print $1, $2, $3, $4, $5, $6, $7, $8, $9, $10 a[$1] }' OFS=, 1.csv 2.csv
當你正在閱讀的第一個文件,你需要在'a [$ 3,$ 4]'中存儲'$ 0'。當你讀第二個文件時,你需要查找'a [$ 3,$ 2]'從第一個文件中獲得匹配的行,然後將它與當前行結合並打印出來。 – Barmar
不幸的是,'join'不適合你,因爲它只能匹配一個字段上的文件,而不是兩個。 – Barmar