GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Batch-Umbenennung von Dateien in eine fortlaufende Nummerierung?

Ich versuche, eine Reihe von Dateien in meiner Shell stapelweise umzubenennen, und obwohl es im Internet viel Material darüber gibt, kann ich anscheinend keine Lösung für meinen speziellen Fall finden.

Ich habe eine Reihe von Dateien, die (was zu sein scheint) eine „timestamp-id“ haben:

abc_128390.png
abc_138493.png
abc_159084.png
...

die ich gegen einen Counter eintauschen möchte:

abc_001.png
abc_002.png
abc_003.png
...

Mein (viel) naiver Ansatz wäre so etwas wie:

mv abc_*.png abc_{001..123}.png

Außerdem konnte ich keinen Weg finden, es mit einem for zum Laufen zu bringen -Schleife.

FWIW, leider rename ist auf diesem speziellen System nicht verfügbar.

Jeder Rat wäre sehr willkommen!

Akzeptierte Antwort:

Mir fällt keine Lösung ein, die das Inkrementieren des Zählers cleverer handhabt, aber das hier sollte funktionieren:

i=0
for fi in abc_??????.png; do
    mv "$fi" abc_$i.png
    i=$((i+1))
done

Es sollte sicher sein, abc_*.png zu verwenden weil es vor dem ersten mv expandiert wird wird immer ausgeführt, aber es kann nützlich sein, sehr spezifisch zu sein, indem Sie nur Dateien mit einem sechsstelligen Zeitstempel am Ende wollen.


Linux
  1. Dateien im Verzeichnis umbenennen?

  2. Wie benenne ich mehrere Dateien mit Find um?

  3. Dateien können in Samba Share nicht umbenannt werden?

  4. Metamorphose 2 – Batch-Umbenennung Ihrer Dateien und Ordner unter Linux

  5. PNG-Dateien rekursiv optimieren

So benennen Sie Dateien über die Befehlszeile in Linux um

So benennen Sie eine Datei (en) in Linux um

8 Methoden zum gleichzeitigen Umbenennen mehrerer Dateien in Linux

So konvertieren Sie PDF-Dateien im Stapelbetrieb unter Linux

So benennen Sie Dateien in Ubuntu 20.04 um

Linux-Erweiterung zum Umbenennen mehrerer Dateien