Re: Umbennen von Dateien per Skript schlägt fehl
Am 27.03.2017 um 21:42 schrieb Klaus Becker <colonius@free.fr>:
> On mercredi 22 mars 2017 19:46:04 CEST Klaus Becker wrote:
> > n'Abend,
> >
> > ich habe viele Dateien umzubennen wie:
> >
> > $ls
> > 23–apportscalciques.mp4 42–magnesium.mp4 45–complementsalimentaires.mp4
> > 47– antioxydants.mp4
> >
> > und möchte die Zahlen und den Bindestrich am Anfang der Dateinamen löschen,
> > also z. B. statt "42–magnesium.mp4" "magnesium.mp4" haben.
> >
> > Versucht habe ich es z. B. mit:
> >
> > ----------
> > for file in $(find -name "*.mp4"); do
> > mv $file $(echo $file | sed s/.*-//)
> > done
> > ----------
>
> ...
>
> n'Abend,
Guten Abend Klaus,
> ich komme nochmal darauf zurück.
>
> Das Umbennen der Dateien klappt jetzt, nur landen alle umbenannten Dateien in
> dem Ordner, in dem ich das Skript starte.
>
> Ich habe aber viele Unterordner, und die Dateien sollen dort bleiben. Ich habe
> es versucht z. B. mit
>
> -----------
> for dir in $(find . -type d); do
> cd $dir
> find . -maxdepth 1 -name "*.mp4" .....
> ----------
>
> damit das Umbennen jeweils im richtigen Unterordner startet. Das ist aber
> offensichtlich nicht der richtige Ansatz, denn ich bekomme als Antwort, dass
> die Unterordner nicht gefunden werden.
>
> Wenn mir da jemand auf die Sprünge helfen könnte...
Kann es sein, dass ggf. Leerzeichen in den Verzeichnis- oder Dateinamen
enthalten sind?
Habe es nicht ausprobiert, aber mein Ansatz würde so aussehen:
for DATEI in $(find . -type f -iname "*.mp4")
do
VERZ=$(dirname "${DATEI}")
cd "${VERZ}"
.....
.....
done
> gute Nacht
> Klaus
Liebe Grüße
Thilo
Reply to: