hello
An jede Datei anhängen :
cat filelist.txt | while read line; do echo hello >> $line; done
Dateiname an jede Datei anhängen:
cat filelist.txt | while read line; do echo $line >> $line; done
Ich versuche, xargs zu verwenden, um eine Reihe von Dateien zu bearbeiten.
Eine Datei namens filelist.txt enthält die Dateinamen
john paul george ringo steve
Ich kann alle diese Dateien mit diesem Befehl erstellen:
cat filelist.txt | xargs touch
Wie kann ich zu jeder Datei in der Liste den gleichen Text "Hallo" hinzufügen? Wie würde ich auch einen Text hinzufügen, der auf dem Dateinamen basiert. Zum Beispiel 'Vorname: Steve' zur Steve-Datei?
hello
An jede Datei anhängen :
cat filelist.txt | while read line; do echo hello >> $line; done
Dateiname an jede Datei anhängen:
cat filelist.txt | while read line; do echo $line >> $line; done
Ich habe @ steven als richtig markiert, weil es vielleicht lesbarer ist, aber ich war neugierig auf eine Lösung, die verwendet wurde xargs
. Das habe ich gefunden:
cat filelist.txt | xargs -I $0 sh -c "echo 'hello' > $0" cat filelist.txt | xargs -I $0 sh -c "echo 'hello $0' > $0"
Die -I $0
Mittelwerte ersetzen $0
in der kommenden Zeichenfolge. Sie könnten etwas besser lesbar wie verwenden $NAME
oder person_name
usw. sh -c
führt den Befehl in einen String. Nicht sicher, warum das so ist.