Ich habe dieses Verzeichnis und möchte die Dateien umbenennen:
===> ls -1 Der-vierte-Weise/
10 - 10 - Erkenntniss.ogg
1 - 01 - Hoffnung.ogg
11 - 11 - Wahrheit.ogg
12 - 12 - Dankbarkeit.ogg
13 - 13 - Kredits.ogg
2 - 02 - Familie.ogg
3 - 03 - Demut.ogg
4 - 04 - Freude.ogg
5 - 05 - Schoenheit.ogg
6 - 06 - Solidaritaet.ogg
7 - 07 - Entscheidung.ogg
8 - 08 - Hilfe.ogg
9 - 09 - Unterstuetzung.ogg
Das Ergebnis sollte folgendermaßen aussehen:
===> ls -1 Der-vierte-Weise/
01 - Hoffnung.ogg
02 - Familie.ogg
...
Ich möchte dies mit gängigen Shell-Tools lösen.
command-line
bash
batch-rename
guettli
quelle
quelle
Antworten:
Sie könnten verwenden
rename
...-n
Nach dem Testen entfernen , um die Dateien tatsächlich umzubenennenErläuterung
s/old/new/
ersetzenold
durchnew
^
Anfang der Zeichenfolge[0-9]+
einige Zahlenquelle
rename
Tool unterstützt? Verwendet es PCRE? ... wäre großartig.rename
ist ein Perl-Skript, daher bietet es vollständige Unterstützung für reguläre Perl-Ausdrücke. PCRE ist nur eine Teilmenge davon. Alles, was Sie von PCRE wissen, gilt jedoch fürrename
.rename
hat Perl kompatible reguläre Ausdrücke. Ja, die PCRE-Implementierung wird nicht verwendet. Ich habe das verstanden :-) Danke für deine schnelle Antwort.bash
Parametererweiterung, um den erforderlichen Teil von Anfang an zu entfernen:Erweiterte Form:
echo
ist zum Trockenlaufen; loswerden für tatsächliche Aktion:Beispiel:
quelle
rename
Befehl. (Weniger Eingabe erforderlich).rename
ist der richtige Weg, wenn Sie mit PCRE vertraut sind. Dierename
Antwort wurde bereits gegeben, also muss man sich mit rein bewegenbash
. Zu beachten ist, dasspython
dasre
(oderregex
) Modul übrigens nicht vollständig PCRE-kompatibel ist.${f#[[:digit:]]*-[[:blank:]]}
hässlich ist. Ja es funktioniert. Aber wir leben im 21. Jahrhundert. Ich denke, es ist Zeit, von "es funktioniert" zu "es ist einfach und macht Spaß" zu wechseln. Wenn "es funktioniert" das Ziel ist, wird Linux niemals das Vorurteil verlieren, nicht benutzerfreundlich zu sein. Da Sie bereits viele Up-Votes erhalten haben, sollte diese eine Down-Vote nicht schaden (hoffe ich). Wenn ja, sag es mir und ich werde es zurücknehmen.[[:digit:]]
und[[:blank:]]
waren da, um Ihren zu entsprechenlocale
, diese sind auch in Regex ziemlich häufig.