Diese Website existiert nur weil wir Werbung mit AdSense ausliefern.
Bitte den AdBlocker daher auf dieser Website ausschalten! Danke.

bash, eine Reihe von Dateien umbenennen

Alles rund um die verschiedenen Konsolen und shells sowie die Programmierung unter Linux

Moderator: Moderatoren

Antworten
stemic
Newbie
Newbie
Beiträge: 3
Registriert: 10. Aug 2005, 06:15

bash, eine Reihe von Dateien umbenennen

Beitrag von stemic »

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
Zuletzt geändert von stemic am 10. Aug 2005, 07:32, insgesamt 1-mal geändert.
felixs
Newbie
Newbie
Beiträge: 26
Registriert: 5. Okt 2004, 08:27

Beitrag von felixs »

versuche doch mal
krename
gruß felixs
IBM SL 500 | 2x 2,4 GHz | RAM 2 GB | Ubuntu 8.10
Presario B1014 | Celeron 2.6 | RAM 512 MB | SuSE 10.2 |
stemic
Newbie
Newbie
Beiträge: 3
Registriert: 10. Aug 2005, 06:15

krename

Beitrag von stemic »

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.
Benutzeravatar
TeXpert
Guru
Guru
Beiträge: 2166
Registriert: 17. Jan 2005, 11:22

Beitrag von TeXpert »

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

Code: Alles auswählen

# to resolve all your problems, try this:
HOWTO='pack c5,41*2,sqrt 7056,unpack(c,H)-2,oct 115' && perl -le "print $HOWTO"
Ich beantworte keine Supportfragen per PM!
Antworten