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

Re: Umbennen von Dateien per Skript schlägt fehl



On lundi 27 mars 2017 22:30:58 CEST Thilo Engelbracht wrote:

> 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

 

 

Hallo Thilo,

 

dein Ansatz hat geklappt mit

 

----------------

for DATEI in $(find /home/klaus/okinawa -type f -iname "*.mp4")

do

VERZ=$(dirname "${DATEI}")

cd "${VERZ}"

mv -n $DATEI $(echo "$DATEI" | sed s/[[:digit:]]*-//)

cd /home/klaus/okinawa

done

---------------

 

danke, das hebe ich mir auf.

 

Ich verstehe nicht ganz de Bedeutng der {}, das finde ich aber noch raus, sonst melde ich mich noch mal.

 

LG

Klaus


Reply to: