Shell: Umbenennen von X Dateien nach bestimmtem Schema?
Shell: Umbenennen von X Dateien nach bestimmtem Schema?
Hi Leute,
ich habe folgendes Problem.
Ich habe eine Verzeichnisstruktur mit xy Unterverzeichnissen in denen circa 1500 Dateien liegen.
Die Dateinamen sehen so aus: 1 + Bildname + .jpg
also 1Haus.jpg, 1Garten.jpg usw
Ich möchte nun per Shellscript / Befehl alle 1500 Dateien umbenennen und zwar nach dem Schema, dass nur die 1 ersetzt wird, so dass am Ende folgendes da steht:
1643Haus.jpg, 1643Garten.jpg
Ich hab leider keine Idee, wie ich das hinbekommen soll.
Ã?ber eine schnelle Hilfe wäre ich dankbar.
ich habe folgendes Problem.
Ich habe eine Verzeichnisstruktur mit xy Unterverzeichnissen in denen circa 1500 Dateien liegen.
Die Dateinamen sehen so aus: 1 + Bildname + .jpg
also 1Haus.jpg, 1Garten.jpg usw
Ich möchte nun per Shellscript / Befehl alle 1500 Dateien umbenennen und zwar nach dem Schema, dass nur die 1 ersetzt wird, so dass am Ende folgendes da steht:
1643Haus.jpg, 1643Garten.jpg
Ich hab leider keine Idee, wie ich das hinbekommen soll.
Ã?ber eine schnelle Hilfe wäre ich dankbar.
-
Roger Wilco
- Posts: 5923
- Joined: 2004-05-23 12:53
Re: Shell: Umbenennen von X Dateien nach bestimmtem Schema?
hach ich liebe diese Antworten.
Aber es nützt auch nichts.
Das Problem ist doch komplexer als ich dachte.
Mit Rename klappt es ja ganz gut, aber was ist wenn es ein Bild gibt das heißt 12garten.jpg die 12 ist ja keine 1 und wenn ich mit rename die eins wegstrippe dann ist die 12 kaputt.
Die Zahlen sind eindeutige Schlüssel in einer Db.
Eigentlich müßt ich wohl in der DB jedes mal nachschauen, inwieweit die Zahl zum Bildnamen gehört oder zum vorgesetzten Index.
Es könnte ja auch
1 + Peter + jpg sein
oder
12 + Peter + jpg
oder 1 + 2Peter +jpg
Ich denke mal, dass es gar nicht möglich ist ohne den DB Zugriff auf die Userids die den Index darstellen das Problem zu lösen.
Aber es nützt auch nichts.
Das Problem ist doch komplexer als ich dachte.
Mit Rename klappt es ja ganz gut, aber was ist wenn es ein Bild gibt das heißt 12garten.jpg die 12 ist ja keine 1 und wenn ich mit rename die eins wegstrippe dann ist die 12 kaputt.
Die Zahlen sind eindeutige Schlüssel in einer Db.
Eigentlich müßt ich wohl in der DB jedes mal nachschauen, inwieweit die Zahl zum Bildnamen gehört oder zum vorgesetzten Index.
Es könnte ja auch
1 + Peter + jpg sein
oder
12 + Peter + jpg
oder 1 + 2Peter +jpg
Ich denke mal, dass es gar nicht möglich ist ohne den DB Zugriff auf die Userids die den Index darstellen das Problem zu lösen.
Re: Shell: Umbenennen von X Dateien nach bestimmtem Schema?
Du könntest die Dateien auch mit regular Expressions auswählen, in denen Du in der zweiten Stelle einfach auf das nicht-Vorhandensein einer Ziffer matchst.quasan wrote:Mit Rename klappt es ja ganz gut, aber was ist wenn es ein Bild gibt das heißt 12garten.jpg die 12 ist ja keine 1 und wenn ich mit rename die eins wegstrippe dann ist die 12 kaputt.
Re: Shell: Umbenennen von X Dateien nach bestimmtem Schema?
das stimmt schon, schließt nur folgenden Fall nicht mit ein
User 1 hat ein Bild namens 5autos.jpg = 15autos.jpg
Es ist ja unmöglich ohne die Datenbank zu erkennen, dass dies Bild zu dem User 1 gehört und nicht zum User 15.
Ich denke ich werd mir irgendwas in php zurechtfummeln.
Trotzdem Danke :)
User 1 hat ein Bild namens 5autos.jpg = 15autos.jpg
Es ist ja unmöglich ohne die Datenbank zu erkennen, dass dies Bild zu dem User 1 gehört und nicht zum User 15.
Ich denke ich werd mir irgendwas in php zurechtfummeln.
Trotzdem Danke :)
-
mr_neutron
- Posts: 14
- Joined: 2004-09-06 18:57
Re: Shell: Umbenennen von X Dateien nach bestimmtem Schema?
bash vorrausgesetzt:
Hilft natürlich auch nicht gegen den 2. Fall
Code: Select all
rename 1 1643 1[A-Za-z]*.jpgRe: Shell: Umbenennen von X Dateien nach bestimmtem Schema?
Was mir auf die Schnelle so einfällt:
[TOM]
Code: Select all
find . -type f -name "1[a-zA-Z]*" -exec rename 1 1643 '{}' ;[TOM]
Re: Shell: Umbenennen von X Dateien nach bestimmtem Schema?
BTW: Diese Methode ist auch "safe", da ja nur die Dateien übergeben werden, die wirklich nur mit einer 1 anfangen. Und rename ändert nur das erste Vorkommen. Es dürfen also auch Dateien mit den Namen 1haus1.jpg oder 7auto1.jpg vorkommen.
Allerdings muss nach der 1 (also als 2. Zeichen) ein Buchstabe kommen.
[TOM]
Allerdings muss nach der 1 (also als 2. Zeichen) ein Buchstabe kommen.
[TOM]
Re: Shell: Umbenennen von X Dateien nach bestimmtem Schema?
ich würd ne schleife basteln, die mit dem höchsten zahlenwert (also beispielsweise 123) anfängt umzubenennen und bei jedem durchlauf den zahlenwert um 1 verringert. in dem fall wird 111DATEINAME.jpg früher gefunden (und umbenannt) als 1DATEINAME.jpg. hilft allerdings auch nichts, wenn der dateiname "5autos.jpg" ist. da hilft wirklich nur der zugriff auf die db, denke ich.