2016-08-03 9 views
0

Ich habe eine TXT-Datei mit einer Liste von Dateinamen, die Dateipfad enthält. Wie fasst man alle Dateien zu einer einzigen Datei zusammen?Concat mehrere Dateien mit SED

EX:

One.txt content >> first file content 
two.txt content >> second file content 
three.txt content >> third file content 

allFiles.txt contains these the below lines 
one.txt 
two.txt 
three.txt 

Ich brauche allFiles.txt auf eine output.txt Datei verketten, die die folgenden Zeilen

first file content 
second file content 
third file content 
+1

Brauchen Sie wirklich sed? 'cat allFiles.txt | Xargs Katze sollte es tun. – patthoyts

+0

Katze allFiles.txt | xargs Katze >> output.txt. Es funktioniert – Neo

Antwort

0
while read fname 
do 
sed '1' "$fname" >> newfile.txt # You need to append so '>>' 
done<allFiles.txt 

enthält Aber wenn Sie brauchen, um die alle Dateien *.txt

Es kann so einfach sein wie

shopt -s globstar 
sed '' **/*.txt 1>>/outfile 2>/dev/null # errors for .txt directories are suppressed 
shopt -u globstar 
+0

Nur bestimmte Dateien, nicht alle Dateien ist das gleiche Verzeichnis. So erstellte eine TXT-Datei, die diese Dateinamen enthält. – Neo

+0

@Neo: Dann ist meine erste Lösung für Sie. Bitte akzeptieren Sie es, wenn es der Anforderung entspricht. – sjsam