it-swarm.com.de

Wie kann ich alle Dateipräfixe in einem Befehl ändern?

Ich muss die Postfixes aller Dateien (alle gleich .JPEG) in .jpeg (Groß-/Kleinschreibung) ändern.
Gibt es eine schnelle Möglichkeit, dies zu tun?

Verwenden Sie das Perl-Programm rename, das standardmäßig installiert ist:

rename 's/\.JPEG$/.jpeg/' *.JPEG

Das erste Argument ist ein regulärer Perl-Ausdruck, der mit Dateinamen übereinstimmt, die mit .JPEG enden, und durch .jpeg ersetzt.

Das zweite Argument wählt die Dateien aus, die abgeglichen werden sollen, in Ihrem Fall jede Datei im aktuellen Verzeichnis, die auf .JPEG endet. Sie könnten natürlich einen anderen Ort angeben:

rename 's/\.JPEG$/.jpeg/' ~/Pictures/*.JPEG

Andere Antworten, die ich gesehen habe:

  • rename s/.JPEG$/.jpeg/ * - Hiermit werden auch Dateien wie StupidJPEG in Stupi.jpeg umbenannt, da der Punkt mit einem beliebigen Zeichen übereinstimmt. .JPEG$ ist ein regulärer Ausdruck
  • rename 's/\.JPEG$/\.jpeg/' * - funktioniert, ist aber weniger effizient, da alle Dateien im aktuellen Verzeichnis an rename übergeben werden.
  • rename -n 's/.JPEG$/.jpeg/' *.JPEG - Die Option -n zeigt an, dass die Dateien umbenannt werden, ohne sie tatsächlich umzubenennen ("Probelauf"). Da *.JPEG nur mit .JPEG postfixierten Dateien entspricht, gibt es hier kein Punkt-zu-Punkt-Problem.
14
Lekensteyn

Obwohl dies möglicherweise nicht die beste Lösung für diesen speziellen Anwendungsfall ist,

for i in *.JPEG; do mv "$i" "$(basename "$i" .JPEG).jpeg"; done

funktioniert auch. Wir können mit bash einige Tricks machen, um die Effizienz leicht zu steigern (ohne einen zusätzlichen Unterprozess in der inneren Schleife aufzurufen), was zu folgendem Ergebnis führt:

for i in *.JPEG; do mv "$i" "${i%%.JPEG}.jpeg"; done

Diese Lösung ist am nützlichsten, wenn Sie etwas anderes tun möchten zusätzlich um die Dateien umzubenennen, z. B. um zu protokollieren, welche Namen geändert wurden, oder einfach nur einen Probelauf durchzuführen, um sicherzustellen, dass es das tut, was Sie wollen.

3
crazy2be

Dafür gibt es ein Tool:

Sudo apt-get install renameutils oder klicken Sie auf Renameutils

(falls noch nicht installiert)

wo können Sie (von der Kommandozeile aus):

rename s/\.JPEG$/\.jpeg/ *.JPEG

3
Rinzwind

Fand es eine Sekunde nach dem Posten:

rename 's/\.JPEG$/.jpeg/' *

Verwenden Sie den Befehl zum Umbenennen. Es ist anders als das Verschieben und sorgt oft für Verwirrung, da es speziell für das Umbenennen von Bildern entwickelt wurde.

So etwas wie dieser Befehl sollte funktionieren (für alle Dateien, die mit .JPEG enden, ändern Sie .JPEG in .jpeg)

benennen Sie -ns/.JPEG $/.JPEG/'* .JPEG um

1
tgm4883

Dinge in parallel zu machen wird immer wichtiger, daher empfehle ich:

parallel mv {} {.}.jpg ::: *.JPG

Dieses Dienstprogramm wird jedoch nicht standardmäßig installiert.

1
Sebastian

Wenn Sie auf der Suche nach einer netten GUI-Lösung sind und sich nicht mit komplizierten Befehlszeilenargumenten herumschlagen möchten, können Sie ein hervorragendes Nautilus-Skript umbenennen Dateien. Es hat eine einfache Oberfläche und viele Optionen.

Verfügbar hier: http://gnome-look.org/content/show.php/Renamer?content=87601

0
MarkovCh1