Ich habe eine Reihe von Dateien mit den Nummern 1-20 und Terminal sortiert sie folgendermaßen:
episode1.txt episode10.txt episode11.txt episode12.txt
Ich möchte die Dateien 1-9 umbenennen, indem ich vor der Nummer eine 0 einfüge. Mein Code ist folgender:
for file in episode{1-9}.txt
do
rename -vs "episode"* "episode0"*
done
Ich habe auch den Befehl „mv“ ausprobiert, aber er funktioniert nicht. Hat jemand Vorschläge? Vielen Dank im Voraus
Antwort1
Um eine Sequenz aufzuzählen, verwenden Sie {x..y}
anstelle von {x-y}
.
Da alle Ihre Dateien einen sehr ähnlichen Namen haben, können wir die Parametererweiterung verwenden, um das Präfix abzuschneiden episode
und durch zu ersetzen episode0
.
Der vollständige Befehl sieht folgendermaßen aus:
for file in episode{1..9}.txt
do
mv "$file" "episode0${file#episode}"
done
${file#episode}
ist eine Parametererweiterung, die in diesem Fall den Parameter erweitert file
und gleichzeitig das kürzeste passende Präfixmuster entfernt episode
.