Hallo!
Versuch es mit einem Shell-Script:
IFS=$'\n'
for i in $( cat woerter ); do
j="${i// /_}.txt"
echo "Creating $j"
touch $j
done
das du dann z.B. mit bash createFiles.sh
ausführst.
Erklärung:
cat woerter
liest die Datei woerter
for i in $( cat woerter ); do
ist der Beginn einer FOR-Schleife, die über das, was der cat
-Befehl liefert, läuft.
Dummerweise würde die Schleife über jedes einzelne Wort laufen, aber es soll ja über die Zeilen laufen. Mit IFS=$'\n'
wird zuvor festgelegt, daß nur Zeilenumbrüche als Trenner in der Liste der Wörter benutzt werden, so daß das mit den Vor- und Nachnamen klappt.
${i//A/B}
liefert den Inhalt der Variablen i
zurück, ersetzt dabei aber alle A
gegen B
.
j="${i// /_}.txt"
erzeugt also eine neue Variable j
, bestehend aus der jeweiligen Zeile aus der Datei, wobei alle Leerzeichen gegen Unterstriche ersetzt werden. (Muß man nicht, aber Leerzeichen in Dateinamen sind auf der Kommandozeile immer etwas umständlich)
touch $j
erstellt die Datei.
Die Ausgabe des Scriptes lautet bei mir:
Creating Tomas_Meier.txt
Creating Peter.txt
Creating Dieter.txt
Creating Friedhelm_Stein.txt
und ein ls
:
createFiles.sh Dieter.txt Friedhelm_Stein.txt Peter.txt Tomas_Meier.txt woerter
Davon abgesehen kann man den gesamten Code natürlich in eine Zeile packen (Semikolon zwischen den Zeilen setzen!) und/oder direkt auf der Kommandozeile eingeben, aber der Umweg über ein Script ist übersichtlicher.