Wie ändere ich das Nummerierungssuffix für eine Reihe von Dateinamen?

Wie ändere ich das Nummerierungssuffix für eine Reihe von Dateinamen?

Hier ist ein Beispiel für eine Reihe von Dateien mit einer Nummerierungserweiterung im Dateinamen.

  • bildschirm1.png
  • bildschirm2.png
  • bildschirm3.png
  • bildschirm4.png
  • bildschirm5.png
  • bildschirm6.png
  • bildschirm7.png
  • bildschirm8.png

Wenn ich diese Dateien nun aus irgendeinem Grund so umbenennen möchte, dass die Nummerierung bei 2 beginnt, müsste ich screen1.png in screen2.png und screen2.png in screen3.png umbenennen und so weiter. Dies würde jedoch bereits an der Stelle fehlschlagen, an der ich versuche, screen1.png in screen2.png umzubenennen, da bereits eine Datei mit diesem Namen vorhanden ist.

So benenne ich die Dateien gerne, wenn ich eine Reihe von Screenshots in Windows mache. Ich kann mich also manchmal in solchen Situationen wiederfinden. Ich habe vielleicht einen Screenshot übersprungen, vielleicht einen, der einen Setup-Prozess zeigt, der zeitlich vor Screenshot 5, aber nach Screenshot 4 stattfindet. Das müsste Nummer 5 sein, aber um es zu speichern, müsste ich zuerst screen5.png in screen6.png und alle folgenden Dateien umbenennen, um sie in chronologischer Reihenfolge zu bringen.

Umbenennen:

  • bildschirm1.png
  • bildschirm2.png
  • bildschirm3.png
  • bildschirm4.png
  • bildschirm5.png > bildschirm6.png
  • bildschirm6.png > bildschirm7.png
  • bildschirm7.png > bildschirm8.png
  • bildschirm8.png > bildschirm9.png

Ergebnis:

  • bildschirm1.png
  • bildschirm2.png
  • bildschirm3.png
  • bildschirm4.png
  • bildschirm6.png
  • bildschirm7.png
  • bildschirm8.png
  • bildschirm9.png

Datei hinzugefügt:

  • bildschirm1.png
  • bildschirm2.png
  • bildschirm3.png
  • bildschirm4.png
  • bildschirm5.png+
  • bildschirm6.png
  • bildschirm7.png
  • bildschirm8.png
  • bildschirm9.png

Gibt es ein Skript, ein Tool oder einen regulären Ausdruck, der mir das Leben leichter machen würde? Ich bin sicher, dass die meisten von Ihnen als Superuser schon mehr als einmal in einer ähnlichen Situation waren. Möchten Sie Ihre Lösung für das Problem mit uns teilen?

Antwort1

$ perl -e 'for $i (reverse 5..8) { $j=$i+1; rename screen$i.png screen$j.png }

Sie können sich beruhigen, indem Sie dies zuerst ausführen

$ perl -e 'for $i (reverse 5..8) { $j=$i+1; print "rename screen$i.png screen$j.png\n" }'
rename screen8.png screen9.png
rename screen7.png screen8.png
rename screen6.png screen7.png
rename screen5.png screen6.png

Unter Windows müssten Sie " anstelle von ' und qq(...) anstelle von "..." verwenden.

Antwort2

Alles was Sie brauchen, ist ein Dateimanager mit der Funktion „Mehrere Dateien umbenennen“ (alle Namenskonflikte werden automatisch gelöst). Die meisten dieser Manager ermöglichen Ihnen, Dateien in einem externen Editor zu bearbeiten, wo das Bearbeiten von Zahlen viel schneller geht als im Dateimanager. ZumindestTotaler KommandantUndUnwirklicher Kommandanthaben eine solche Funktion.

Oder Sie schreiben dazu kleine einzeilige Skripte über die Shell.

Sie können auch ein eigenständiges Skript zum Umbenennen mehrerer Dateien verwenden, wievimvgibt es noch mehr ähnliche Skripte. Sie können so konfiguriert werden, dass sie andere Editoren verwenden, obwohl Vim meiner Meinung nach dafür besser geeignet ist als jeder andere Editor, da esVisIncr-Pluginund integrierte Befehle zum Erhöhen/Verringern von Zahlen ( :help CTRL-Aund :help CTRL-X).

Eine weitere Variante ist die Verwendungvifm, das das Erhöhen/Verringern von Zahlen in Namen ausgewählter Dateien unterstützt (dieselben Schlüssel wie in Vim). Es handelt sich jedoch um eine Konsolenanwendung und hauptsächlich für Vim-süchtige Leute.

verwandte Informationen