2017-06-14 67 views
1

我有一個排序後的csv文件,其中幾個條目是重複的,除了最後一列。我如何將所有最後一列連接到每個條目的第一次出現?bash - 在一個csv文件中,獲取所有重複並連接到最後一列的最後一列

輸入:

Test1,123,somestuff

Test1,123,differentstuff

Test2,345,otherstuff

輸出:

測試1 ,123,索姆estuff,differentstuff

Test2,345,otherstuff

編輯: 獲得的最後一列是容易(cut -d, -f3 test.csv);現在我需要將其添加到條目的每個第一次出現中。

回答

1

使用AWK實用程序:

awk -F, '{ k=$1 FS $2; a[k] = (k in a)? a[k] FS $3 : $3 } 
     END{ for(i in a) print i,a[i] }' OFS=',' csvfile 

輸出:

Test1,123,somestuff,differentstuff 
Test2,345,otherstuff 

  • -F, - 場分離

  • k=$1 FS $2 - 關聯數組鍵(由第一2字段值分組記錄)

+0

謝謝,但是它似乎有是在最後一列中加入一個冒號。任何想法如何刪除它?否則,這似乎很好。 – user96649

+0

@ user96649,在這裏顯示問題行 – RomanPerekhrest

+0

'Test2,345,otherstuff'和'Test1,123,somestuff,differentstuff'是你的腳本返回給我的 – user96649

相關問題