Verwenden von Terminal zum Umbenennen bestimmter nummerierter Dateien

377
stitchineer

Ich habe eine Reihe von Dateien, die von 1 bis 20 nummeriert sind, und das Terminal sortiert sie wie folgt:

episode1.txt episode10.txt episode11.txt episode12.txt 

Ich möchte die Dateien umbenennen 1-9 durch Einfügen einer 0 vor der Nummer. Mein Code lautet wie folgt:

for file in episode.txt do rename -vs "episode"* "episode0"* done 

Ich habe auch den Befehl 'mv' ausprobiert, aber es funktioniert nicht. Hat jemand irgendwelche Vorschläge? Danke im Voraus

1

1 Antwort auf die Frage

0
8bittree

To enumerate a sequence, use instead of .

Since all your files have a very similar name, we can use parameter expansion to chop off the prefix episode while replacing it with episode0.

The full command looks like this:

for file in episode.txt do mv "$file" "episode0$" done 

$ is a parameter expansion that, in this case, expands the parameter file while removing the shortest prefix pattern that matches episode.