Wie cat mehrere Dateien aus einer Liste von Dateien in der Bash?
Ich habe eine text-Datei, die enthält eine Liste von Dateien. Ich möchte cat
deren Inhalt zusammen. Was ist der beste Weg, dies zu tun? Ich war etwas wie das zu tun, aber es scheint zu Komplex:
let count=0
while read -r LINE
do
[[ "$line" =~ ^#.*$ ]] && continue
if [ $count -ne 0 ] ; then
file="$LINE"
while read PLINE
do
echo $PLINE | cat - myfilejs > /tmp/out && mv /tmp/out myfile.js
done < $file
fi
let count++
done < tmp
War ich überspringen auskommentierte Zeilen und in Probleme laufen. Es muss einen besseren Weg, dies zu tun, ohne zwei Schleifen. Danke!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Oder in einen einfachen Befehl
cat $(cat files) > output
Was ist besser, über diesen Ansatz ist, dass:
cat
bekommt nur einmal ausgeführt.grep
beantworten können brechen, wenn einer der Dateinamen Leerzeichen in Ihnen.file
. Gibt es eine echte Notwendigkeit für die Zahnspange?Wie etwa
cat $(cat listoffiles) | grep -v "^#"
?cat $(grep -v '^#' listoffiles)
? Was ist mit Leerzeichen Probleme?listoffiles
oder Namen zitiert.xargs
Ausgabe:
Verwandte: Wie Rohr Liste der Dateien zurückgegeben, die von find-Befehl cat alle Dateien
Landete ich mit diesem:
Schritte:
sed entfernt leere Zeilen & auskommentierten Zeilen aus Dateien.
sed dann wird jeder Zeile in
cat "
und";
.Skript wird dann an sh mit und in Ausgabe.