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 |