2014-06-25 72 views
0

我有一個超過10,000個.csv文件的文件夾,我想合併成一個主文件。它們都以相同的方式分類(列A B C D E F在每個文件中都是相同的)。我寧願在shell腳本中執行它。如何將數千個.csv文件合併成一個主文件?

我試圖

cat *.csv > Everything.csv 

,返回該參數過長

我也試過

copy *.csv > Everything.csv 

並返回相同的錯誤。

如何獲得它將大約10,000個文件合併成一個主文件?

回答

0

我已經使用了這事

cat *.csv >> /tmp/master_file_name.csv 

單「>」將重新寫入文件,而不是將其追加,

+0

返回錯誤 -bash:/斌/貓:參數列表太長 – user3736201

0

這個問題討論你所看到的錯誤:Argument list too long error for rm, cp, mv commands

一個可行的辦法是這樣的:

find . -name "*.csv" -exec cat '{}' >> ./Everything.csv ';' 
+0

我用了更強大的電腦。它返回錯誤「輸入文件是輸出文件」。 – user3736201

+0

嘗試調用輸出文件「Everything.output」,然後重命名爲.csv? – khan

0

您可以使用一個簡單的廁所電話號碼:

for file in `ls`; do 
    cat $file >> master_file 
done 
0

find . -name "*.csv" | xargs -I{} cat '{}' > Everything.csv

(編輯)很好啊,打衝...

+0

返回錯誤「cat:./Everything.csv:輸入文件是輸出文件」 – user3736201

+0

正確,並且完成時Everything.csv中的所有內容(即,您仍然可以得到正確的答案)。這真是一個警告。如果您的輸出文件沒有以.csv結尾,或者如果它位於當前目錄之外的其他目錄中,則不會得到該警告。 – JohnH