• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

bash, eine Reihe von Dateien umbenennen

stemic

Newbie
Folgendes Aufgabe
Ich habe mit meiner Camera eine Reihe von Bildern gemacht und habe diese auf die Festplatte überspielt. Ich möchte diese Bilder nunmehr nach Inhalten umbenennen. Ich möchte aber bei 50 Dateien nicht jede einzelne umbenennen sondern würde das gerne so machen, daß ich z.b. die Dateien in der Form Bild001-Bild050 mit einem "Einzeiler" in der bash umbenannt werden.
Folgende Vorschläge habe ich schon mal erarbeitet, bekomme sie aber nicht richtig zusammen.
1. mit find die Dateien einlesen
2. eine Variable sezten $var
3. mit mv umbenennen wobei mit '...' eine Befehlssubstitution gemacht wird. Da sollte dann die $var rein.
4. irgendwie sollte jetzt selbst hochgezählt werden.

So ungefähr dachte ich könnte das gehen ABER ich kann es leider nicht.
Ich hätte eine Variante als script aber genau das will ich ja nicht.


CODE
#!/bin/sh

count=1
find . -type f | while read filename
do
mv "${filename}" "Bild_$(printf %03d ${count}).png"
count=$((count+1))
done
ENDE CODE

nicht sehr elegant und mit einigen Schwächen aber als Ausgangspunkt für einen Einzeiler vielleicht brauchbar.
Für Hilfe wäre ich dankbar
stemic
 
OP
S

stemic

Newbie
danke, das tool kenne ich und finde es auch nicht schlecht. Ich arbeite aber viel mit der bash und das ist eine Dateioperation die ich dann doch häufiger brauche. Und es wäre doch wirklich toll, wenn man das in einem bash "Einzeiler" hinbekommt.
 

TeXpert

Guru
also Bash-Einzeiler mit Schleifen will man nicht wirklich ;)

Du Du nicht schreibst, wie die Dateinamen vorher aussehen, hilft evtl. schon mmv weiter ansonsten mach Dir einen perl-1-Zeiler draus
 
Oben