Hallo, Am Fre, 23 Jan 2009, Al. Bogner schrieb: [..]
find . -print | sort -r | while read i ; do n="`dirname "$i"`/`basename "$i" | sed -e "s/ /_/g" -e "s/'/_/g" -e "s/__/_/g" -e "s/ä/ae/g" -e "s/ö/oe/g" -e "s/ü/ue/g" -e "s/ß/ss/g" | tr '[[:upper:]]' '[[:lower:]]'`" [ "$i" != "$n" ] && mv "$i" "$n" 2>/dev/null done
Es wird übersichtlicher, wenn du die Ersetzungen in ein sed-script verpackst. Und du fängst keine Kollisionen ab. Außerdem werden ÄÖÜ nicht erfasst. ==== sanitize_filenames.sed ==== #!/bin/sed -f ## ggfs. ergänzen s/[ '"]/_/g; s/[[:upper:]]/[[:lower:]]/g; s/ä/ae/g; s/ö/oe/g; s/ü/ue/g; s/ß/ss/g; s/__/_/g; ==== find . -depth -print | while read -r f; do n="${f%\/*}/$(echo "${f##*\/}" | sed -f sanitize_filenames.sed)" test "$f" != "$n" && mv -i "$f" "$n" done HTH, -dnh -- Nein, ich bin NICHT die Signatur, ich putz hier nur!! -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org