Linux benennt Dateien in Großbuchstaben um
Ich eine große Anzahl von Dateien im format x00000.jpg
X00000.jpg
und xx00000.jpg
.
Wie kann ich diese Dateien umbenennen, damit Sie alle Großbuchstaben, ignoriert Sie den numerischen Teil des namens?
InformationsquelleAutor der Frage Jay | 2013-11-27
Du musst angemeldet sein, um einen Kommentar abzugeben.
InformationsquelleAutor der Antwort damienfrancois
Können Sie nicht umbenennen, Dateien aus der Bash auch nur, weil Bash keine eingebaute Befehl für das umbenennen von Dateien. Sie haben mindestens einen externen Befehl.
Wenn Perl erlaubt ist:
Wenn Python ist erlaubt:
Wenn Sie Tausende oder mehr Dateien, die die oben genannten Lösungen sind schnell, und die Lösungen sind unten merklich langsamer.
Wenn AWK,
ls
undmv
sind erlaubt:Wenn Sie haben eine Menge von Datei, die oben genannten Lösungen nicht funktionieren, weil
*.jpg
erweitert, um eine zu lange Liste von Argumenten (Fehler: Argument-Liste zu lang).Wenn
tr
undmv
erlaubt sind, dann sehen damienfrancois' Antwort.Wenn
mv
ist erlaubt:Bitte beachten Sie, dass diese umbenennen
.jpg
zu.JPG
am Ende, aber Sie können diese ändern, um zu vermeiden, dass.InformationsquelleAutor der Antwort pts
Den
bash
shell hat eine syntax für die übersetzung der Namen einer Variablen, all-caps.Glaube ich, dass dies ein Recht neues feature, so überprüfen Sie zuerst, dass Ihre version von
bash
implementiert. Um Fehler zu vermeiden, versuchen Sie es einmal austauschenmv
durchecho mv
nur um sicher, es wird zu tun, was Sie wollen.Die Dokumentation für diese Funktion ist hieroder geben Sie
info bash
und suchen Sie nach "oben".Sollte man wohl entscheiden, was zu tun ist, wenn die Zieldatei bereits existiert (sprich, wenn beide
x00000.jpg
undX00000.JPG
bereits vorhanden ist), es sei denn, Sie sind sicher, es ist nicht ein Problem. Zu erkennen, wie Kollisionen mit Namen, die Sie ausprobieren können:durch und suchen Sie nach Zeilen, die nicht ab
1
.InformationsquelleAutor der Antwort Keith Thompson
Kombinieren die vorherigen Antworten ergeben könnte:
InformationsquelleAutor der Antwort Wiley
Tr:
AUSGABE:
InformationsquelleAutor der Antwort anubhava
rename
Verwenden
rename
Befehl benennt mehrere Dateien. Ich denke, dass ist der einfachste Weg. Übersetzen in Kleinbuchstaben die Namen zu den oberen, die Sie verwenden würden:Referenz
InformationsquelleAutor der Antwort Pablo Bianchi
Wenn nur das umbenennen von Dateien/Verzeichnissen ist alles, was Sie wollen, dann können Sie rnm :
Erklärung:
-rs
: Zeichenfolge (string) ersetzen././\C/g
ersetzt alle match.
(regex), um es in Großbuchstaben.-fo
: Datei nur mode-dp
: Tiefe der Verzeichnis - (-1 bedeutet unbegrenzt).Weitere Beispiele finden Sie hier.
InformationsquelleAutor der Antwort Jahid