我一直在搜索此解決方案的interweb,但沒有找到任何成功。我有一個腳本的CSV輸出,它以特定方式顯示數據,我需要匹配並與另一個文件合併。如果我可以舍入到簡單的2 x小數點,則可以獲得額外的獎勵。根據列中的匹配結合2個CSV文件,忽略標題行
文件1:dataset1.csv
5033db62b38f86605f0baeccae5e6cbc,20.875,20.625,41.5
5033d9951846c1841437b437f5a97f0a,3.3529411764705882,12.4117647058823529,13.7647058823529412
50335ab3ab5411f88b77900736338bc6,6.625,1.0625,3
5033db62b38f86605f0baeccae5e6cbc,2.9375,1,1.4375
文件2(使用第1列作爲主鍵或我要搜索其他文件的內容。):dataset2.csv(如果列2場比賽第1列文件的文件從2連接列1替換數據在第1列文件1.)
"dc2","5033db62b38f86605f0baeccae5e6cbc"
"dc1","5033d9951846c1841437b437f5a97f0a"
期望的結果:
文件1(或新file3的):
dc1,3.35,12.41,13.76
dc2,20.875,20.625,41.5
只是爲了證明我一直在試圖找到一種方式,而不是隨機問一個問題,希望別人能解決我的問題。
我發現了一些資源,說使用連接。
join -o 1.1,1.2,1.3,1.4,2.3 file 1 file 2
等我已經測試了這一些不同的方法。我在一些帖子上看到,結果需要排序 - 那麼長的字符串有點困難。更不用說文件1可能有30到40個條目,但file2可能只有10個。我只需要一個與長字符串關聯的名稱。
我開始看grep - 但後來我需要一個forEach循環來遍歷所有的結果,並且必須有一個更簡單的方法。
我也看了AWK - 現在這是一個有趣的嘗試弄清楚如何使這項工作。
awk 'FNR==NR {a[$2]; next} $2 in a' file.csv testfile2.csv
啊....試了很多辦法得到這個比較,因爲這似乎是一般的想法......但還沒有得到它的工作。我希望這是linux的shell腳本的一些類型非常簡單,我可以從一個PHP頁面調用並讓它運行。就像用戶點擊刷新一樣,它會攪動並消化數據。
任何幫助將不勝感激!
謝謝。 j)。
j。
你不介意答案是基於哪種語言? (PHP,Python,awk)? – trincot
我正在探索所有的選擇 - 它只是簡單和容易重複....我仍然在測試下面的一些建議。 – Jared