2016-06-20 23 views

Antwort

2

Sie können für das finden:

find ./data/ -name "*.txt" -exec cat "{}" \; >>final1.txt 

* Expansion Grenzen hat, weil bash es in jedem einzelnen Dateinamen erweitert und Argumente werden begrenzt durch Kernel MAX_ARGS_PAGES Einstellung (siehe http://www.linuxjournal.com/article/6060)

+0

Sie können verwenden:' finden ./data/ -name "* .txt" -exec cat "{}" + >> final1.txt' die reduzieren die Anrufe bei Katze auf ein Minimum. – hek2mgl

0

EDIT: - cat Befehl ist für concatenation von mehreren Dateien. Aber es hat auch einige Grenzen für Nein. von Dateien als Argumente. Sie können versuchen, diese: -

for files in *.txt; do cat $files >> output.txt ;done 

HINWEIS: - Sie Platz auf Ihrem Rechner haben müssen einzelne vermischte (großen) Datei und bereits vorhandene Dateien aufzunehmen.

+0

nicht tun ' ls' parsing (siehe http://mywiki.wooledge.org/ParsingLs) –

+0

Ihre Lösung wird genau das gleiche Problem haben, da sie '*' im Argument verwendet. –

+0

Notierte den Punkt. Danke! – syadav