Am Mittwoch, den 22.03.2017, 19:46 +0100 schrieb Klaus Becker: > 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 > ---------- > > Bei anderen Dateinamen klappte das, aber hier bekomme ich eine Meldung der Art > "mv: './42–magnesium.mp4' and './42–magnesium.mp4' are the same file". > > Ich sehe nicht, wo der Fehler liegt. Ich habe es auch mit x anderen Versionen > des Skripts versucht, auch mit "find ... -exec" und "find ... xargs", aber > nichts klappt, ich brech' mir da einen Ast ab. > > Auch > ---------- > for file in $(find -name "*.mp4"); do > mv $file $(echo $file | sed s/[0-9]*-//) > oder mv $file $(echo $file | sed s/[[:digit:]]*-//) > done > ---------- > ergibt die gleiche Meldung. Versuchs mal mit: #!/bin/bash for FILE in $(find -name "*.mp4") ; do OLD_NAME="${FILE##*/}" NEW_NAME="${OLD_NAME#[[:digit:]][[:digit:]]-}" mv "${FILE}" "${FILE%/*}/${NEW_NAME}" done -- mfG Sascha GPG key: http://pgp.mit.edu:11371/pks/lookup?op=get&search=0x92BBDD596C5FDC0F GPG fingerprint: 5A68 F665 44E6 0E50 001C 75A6 92BB DD59 6C5F DC0F ~~~ Sorgen sind wie Babys: Je mehr man sie hätschelt, desto besser gedeihen sie. -- Helmut Qualtinger
Attachment:
signature.asc
Description: This is a digitally signed message part