Ich versuche, den Umbenennen Befehl in einem Terminal in Ubuntu zu verwenden, um eine Zeichenfolge an den Anfang einiger AVI-Dateinamen wie folgt anzufügen.Linux Umbenennungsfunktion wird nicht korrekt verwendet
rename -n 's/(\w)\.avi$/String_to_add__$1\.avi/' *.avi
So erwarte ich folgendes:
String_to_add_MyMovie.avi
Problem ist, dass wenn ich den Befehl ausführen es die Zeichenfolge an das Ende des Dateinamens anfügt, so dass ich am Ende mit den folgenden:
MyMovie_String_to_add_.avi
Ich bin mir nicht sicher, ob ich die Perlexpr-Syntax falsch oder etwas anderes habe. Jeder Einblick wird geschätzt.
UPDATE:
Danke für die Vorschläge, habe ich versucht, die Vorschläge von alno und plundra und machte folgende Änderung:
rename -n 's/(\w+)\.avi$/String_to_add__$1\.avi/' *.avi
Aber jetzt ist die Datei erhält die Zeichenfolge in der Mitte des Namens eingefügt wie folgt:
My_String_to_add_Movie
ich entschuldige mich aber vernachlässigt ich zu erwähnen, dass die Titel von 3 vorangestellt werden numerische Werte, so ist die Dateinamensnomenklatur {3 numbers}-My_Movie.avi
so zum Beispiel 001-My_Movie.avi
. Aber ich dachte nicht, dass dies einen Unterschied machen würde, da ich annahm, dass \w+
mit alphanumerischen Zeichen übereinstimmt, könnte das "-" das Problem sein?
Ich habe noch nicht versucht Christian Ansatz, ich möchte in der Lage sein, den Umbenennen Befehl zu verwenden, oder zumindest verstehen, warum es nicht funktioniert, bevor ich einen anderen Ansatz versuchen.
Für eine einfache Sache wie das Voranstellen einer Zeichenkette an einen Dateinamen ist dies der offensichtliche Weg, ja. Obwohl Sie Ihre Quelle und Ihr Ziel angeben möchten ("$ i"). – plundra
Als Standard nehme ich an, dass er Debian oder Ubuntu benutzt, wobei die 'rename'-Alternative auf' prename' verweist (wie in perl rename), die mit dem Paket 'perl' geliefert wird. Also würde ich * denken * es ist ziemlich üblich auf Debian-ähnlichen Systemen, obwohl ich "Vornamen" verwenden würde, anstatt sich auf eine Alternative zu verlassen, die korrekt eingestellt ist. – plundra