我試圖將存儲在CSV文件中的多個結果連接在一起,第一列作爲索引。Linux - 將多個CSV文件合併爲一個
問題是我有各種數量的文件,並且索引結果可能因文件而異,有些結果較少。
在Linux中,腳本化過程將所有文件合併到一個文件中最簡單的方法是什麼,空白字段爲空結果?我遇到過Linux加入,粘貼和列沒有運氣。 Mybe我應該嘗試使用另一種工具,或者Python或Perl?
數據文件是這樣的:
文件1:
header1 header2 header3
result_A 10 11 12
result_B 13 14 15
result_C 16 17 18
result_D 19 20 21
result_E 22 23 24
result_F 25 26 27
文件2:
header1 header2 header3
result_B 40 41 42
result_F 43 44 45
文件3:
header1 header2 header3
result_C 60 61 62
result_D 63 64 65
result_F 66 67 68
並希望的結果應該是這樣的:
file1 file1 file1 file2 file2 file2 file3 file3 file3
header1 header2 header3 header1 header2 header3 header1 header2 header3
result_A 10 11 12
result_B 13 14 15 40 41 42
result_C 16 17 18 60 61 62
result_D 19 20 21 63 64 65
result_E 22 23 24
result_F 25 26 27 43 44 45 66 67 68
非常感謝,對於提示鍵入TAB字符,我不知道這一點。 該命令快到了。我在我身邊嘗試過,結果相同:C和D行中的值60,61,62,63,64,65應該在第三列。 由於某些原因,如果缺少一行,它不會創建正確的值。 – zlig
是的。它有點不錯,但是它不會像'[join -e'的手冊頁](http://linux.die.net/man/1/join)中記錄的那樣'替換掉EMPTY輸入字段' 。嗯。這可能是我犯的一個錯誤。 – sehe
在shell中「鍵入」製表符的替代方法是使用printf格式的引用。這適用於bash,一些Almquist衍生物(即破折號)和其他可能的衍生物。使用Ctrl-v轉義標籤,而不是使用'$'\ t''。請注意,這種格式不希望生活在雙引號內。你應該可以像'-t $'\ t''一樣使用它。您可以在[QUOTING]下的bash手冊頁中找到更多信息(https://www.freebsd.org/cgi/man.cgi?query=bash#QUOTING)。我喜歡這種方法,因爲它通過複製和粘貼來保持選項卡,這對於SO答案來說特別好。 :-) – ghoti