[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: