PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Script zum Dateien umbenennen



Fußhupe
01.09.04, 20:41
Hallo zusammen,

das Thema "Dateien umbenennen" wurde schon etliche Male hier behandelt, jedoch war mein Problem leider nicht dabei.

Folgendes:

Ich habe ein Verzeichnis mit etlichen Unterverzeichnissen.

/home/alex/Urlaub
/home/alex/Urlaub/2001
/home/alex/Urlaub/2002
/home/alex/Urlaub/2003
etc.

In jedem Verzeichnis befinden sich Dateien. Diese sollen, am besten durch ein Script, nach folgendem Schema umbeannt werden:

alterDateiname1.jpg --> NamedesVerzeichnisses_0001.jpg
alterDateiname2.jpg --> NamedesVerzeichnisses_0002.jpg

also wird aus

pic4711.jpg --> 2001_0001.jpg
pic4712.jpg --> 2001_0002.jpg

pic4713.jpg --> 2002_0001.jpg
pic4714.jpg --> 2002_0002.jpg

usw.

Ich hoffe, mein Problem ganau beschrieben zu haben.

Bin für Hilfe sehr dankbar.


Gruß
Fußhupe

BLUESCREEN3D
01.09.04, 21:29
haben die unterverzeichnisse auch noch unterverzeichnisse?

Fußhupe
02.09.04, 05:55
Zum Teil ja. Wäre aber nicht der große Aufwand, die manuell herauszuholen.


Gruß
Fußhupe

Alexiel
02.09.04, 17:06
darf ich vorschlagen, dass du dafür PHP oder Perl verwendest?

ausserdem würde ich wegen der Subdirs eine rekursive Funktion vorschlagen

Fußhupe
02.09.04, 17:15
Ich krieg doch nicht mal 'n Script zu Stande :(


Gruß
Fußhupe

stokedfish
02.09.04, 17:18
Dann verwende halt KRename! ;)

Fußhupe
02.09.04, 17:24
Krename fängt nicht in jedem Verzeichnis neu an zu zählen.


Gruß
Fußhupe

Alexiel
02.09.04, 18:33
so toll bin ich nicht im Shell'en, aber vielleicht können das ja andere hier weiterbauen :)


#!/bin/sh
zahl=1
for i in `ls .` ; do
mv $i `pwd | sed s/^.*\\\///`_${zahl}.jpg ;
zahl=$(($zahl+1));
done

- funzt nur im pwd (sollte nicht drinliegen, benennt sich sonst selbst um)
- ignoriert die Endung, schreibt einfach .jpg dran
- das Zahlenformat hat keine leading zeros

BLUESCREEN3D
03.09.04, 13:34
Krename fängt nicht in jedem Verzeichnis neu an zu zählen.
du tust das in deinem beispiel aber auch!?

Fußhupe
03.09.04, 14:04
nein, pic*.jpg sind nur Beispiele gewesen. Die Dateien heissen alle wild durcheinander. Nur der Ordner in dem die Dateien liegen hat den richtigen Namen. Die Dateien darin sollen diesen übernehmen und _0001.jpg etc. hinten dranhängen.

Mit Krename müsste ich die Dateien eines jeden Ordners einzeln durchlaufen lassen. Und das erfordert viel Zeitaufwand.

@Alexiel: Danke für die Mühe.


Gruß
Fußhupe

BLUESCREEN3D
03.09.04, 14:57
nein, pic*.jpg sind nur Beispiele gewesen. Die Dateien heissen alle wild durcheinander. Nur der Ordner in dem die Dateien liegen hat den richtigen Namen. Die Dateien darin sollen diesen übernehmen und _0001.jpg etc. hinten dranhängen.
es geht nicht um die ursprungsnamen sondern um die zeilnamen.
da hast du geschrieben:


pic4711.jpg --> 2001_0001.jpg
pic4712.jpg --> 2001_0002.jpg

pic4713.jpg --> 2002_0001.jpg
pic4714.jpg --> 2002_0002.jpg

also gibt es mehr als eine datei, die mit "_0001.jpg" endet

oder soll das nicht so sein?

Fußhupe
03.09.04, 15:27
also gibt es mehr als eine datei, die mit "_0001.jpg" endet
Richtig. Aus bzw. dann in jedem Ordner mindestens eine.

Ich versuchs nochmal zu erklären:

Im Ordner /home/alex/Urlaub/Urlaub_2001/ liegen die Dateien

193jdzuej.jpg
s8j3.jpg
usw.

Diese sollen nach dem Umbennen so aussehen:

Urlaub_2001_0001.jpg
Urlaub_2001_0002.jpg
usw.

Beim Ordner /home/alex/Urlaub/Urlaub_2002/ soll das Script wieder bei 1 anfangen zu zählen.

Urlaub_2002_0001.jpg
Urlaub_2002_0002.jpg
usw.

Praktisch rekursiv umbenennen und bei jedem Ordnerwechsel wieder bei 1 anfangen zu zählen.

Ob das geht? Wäre toll.


Gruß
Fußhupe