2014-08-31 193 views
4

是否可以使用批處理文件將多個CSV文件[同一目錄]合併爲一個文件?如果是這樣,我該怎麼做?使用批處理文件合併多個csv文件

我認爲這將適用於任何ASCII文件?

+0

那些文件的列類型是否完全相同? – rostok 2014-08-31 20:51:48

+0

是的,完全一樣。 – 2014-08-31 20:52:59

+0

查看[合併/合併/將文本或CSV文件的內容複製到一個新文件](https://www.ultraedit.com/forums/viewtopic.php?f=52&t=7118)UltraEdit腳本解。我在那裏也寫了爲什麼我使用腳本並且不使用命令'copy'。 – Mofi 2014-08-31 20:55:48

回答

7
copy *.csv merged.csv 

copy file1+file2+… merged.csv 

用於更復雜的腳本,避免了重複的標題,見Batch Combine CSV Remove Header

+1

如果CSV在第一行中有列名,這將在merged.csv中得到重複。沒有什麼大不了,如果輸出用於手動處理,但如果處理不當可能會出現一些錯誤 – rostok 2014-08-31 20:59:50

+0

@rostok此頁面(選項2)可以解決問題:https://www.itsupportguides.com/office- 2010 /如何對合並-多的CSV文件 - 到 - 一個CSV文件,使用-CMD / – 2017-01-01 11:30:14

1

有時候你想知道從哪個文件來什麼線。 如果只是用

副本* .CSV merged.csv

你會得到粘貼文件一前一後,沒有辦法知道哪條線從哪個文件來了。

解決方案涉及使用grep.exe實用程序。 http://gnuwin32.sourceforge.net/packages/grep.htm

一旦你擁有了它(並添加其位置到PATH),轉到該CSV文件的文件夾,並在命令shell中運行這個命令::您可以從地方,如這一個得到它

grep -e^a * $ * .csv> t.txt

結果將會是所有的文件都被添加到t.txt中,並在每行的開頭附加了文件名,用「:」 「從文件的文本。

實施例:

file1.csv

此,線

,從

文件,1

file2.csv

此,行

,從

文件,2

運行grep命令後,t.txt將有:

file1.csv:這個,行

file1.csv:是,從

file1.csv:文件,1

file2.csv:這個,行

file2.csv:是,從

file2.csv:文件,2

變化t.txt .t.csv,並在Excel中打開。 下一步是採用第一列並將其分割爲兩列,使用「:」作爲分隔符(數據 - >文本到列 - >分隔符,並選擇「其他」並在該字段中輸入「:」。)

小心!在列A和B之間添加一個新列,以便當列A分成2列時,它不會覆蓋列B的內容。

請注意,如果第一個csv字段中的文本包含「:」這將會變得更加困難,因爲列A將分成兩列以上。

另外,有關重複標題的註釋也在此處保留。