Zahlen in Dateinamen mit Nummern auffüllen

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
bump
Beiträge: 75
Registriert: 07.04.2004 09:43:44

Zahlen in Dateinamen mit Nummern auffüllen

Beitrag von bump » 16.05.2014 09:09:46

Moin Moin,

ich hätte da mal wieder ein Problem...

Ich möchte alle Dateien mit einer 1-2 Ziffern im Dateinamen diese (unabhängig von der Namensstruktur) mit Nullen auffüllen, so dass alle Zahlen dreistellig sind.

Beispiel:
Datei1.txt -> Datei001.txt
Datei_1_Name.txt -> Datei_001_Name.txt
Datei100.txt -> Datei100.txt

Ich habe es mit rename \d{m,n} probiert, aber es wurden jedesmal auch die schon 3stelligen Zahlen umbenannt.

Wie kann ich das am besten umsetzen?

Vielen Dank!

Benutzeravatar
fragenfrager
Beiträge: 658
Registriert: 31.12.2003 08:47:15

Re: Zahlen in Dateinamen mit Nummern auffüllen

Beitrag von fragenfrager » 16.05.2014 12:25:08

kann dir leider keine fertige Lösung bieten aber ein Prinzip welches realisierbar wäre:

1.) Dateinamen filtern (Suche nach Ziffern der Länge 1-2 im Dateinamen)
2.) Falls Datei gefunden, splitte Dateinamen in Ziffernpart und Rest
3.) Füge Ziffernpart gewünschte Anzahl Nullen hinzu
4.) Füge neu erzeugte Ziffern und Rest des Dateinamens wieder zusammen

So weit die Theorie...

Benutzeravatar
bump
Beiträge: 75
Registriert: 07.04.2004 09:43:44

Re: Zahlen in Dateinamen mit Nummern auffüllen

Beitrag von bump » 16.05.2014 14:53:02

Habe es nun mit rename doch noch hinbekommen, nach dem ich die Lösung zu einem ähnlichen Problem gefunden habe:

find . -type f -execdir rename 's/\d+/sprintf("%03d",$&)/e' "{}" \;

Benutzeravatar
fragenfrager
Beiträge: 658
Registriert: 31.12.2003 08:47:15

Re: Zahlen in Dateinamen mit Nummern auffüllen

Beitrag von fragenfrager » 16.05.2014 15:36:04

Super Einzeiler :THX:
Danke!

Antworten