Ich würde gerne alle Leerzeichen ind Datei- /Ordnernamen in "_" umwandeln.
Hab dazu ein Script gefunden leider kunktioniert das nicht.
Meine Kenntnisse, warum es nicht funktioniert übersteigt das auch noch.
Vll. kann mir einer von euch helfen.
Code: Alles auswählen
#!/bin/bash
# rename files containing control characters and umlauts in their name
# (C) Reinhard Wobst, @(#) 7.Apr 17:38
typeset -i n
find . -print |
while read fn
do
replace="$(echo -n "$fn" | tr '[\001-\040]' '[_*]')"
replace="$(echo "$replace" |
sed -e 's-ä-ae-g' -e 's-ö-oe-g' -e 's-ü-ue-g' \
-e 's-Ä-Ae-g' -e 's-Ö-Oe-g' -e 's-Ü-Ue-g' \
-e 's-ß-ss-g'
)"
[ "$replace" = "$fn" ] && continue
[ -a "$replace" ] &&
{
n=0
while [ -a "$replace$n" ] ; do let n+=1; done
replace="$replace$n"
}
echo renaming \""$fn\"" to \""$replace\""
mv "$fn" "$replace"
done | cat -vt | tee ${1:-.deNTprot}
Code: Alles auswählen
renaming "./Peter_Lustig" to ""
renaming "./Peter_Lustig/Peter Lustig.txt" to ""
sed: -e Ausdruck #1, Zeichen 7: unterminated `s' command
mv: angegebenes Ziel ââ ist kein Verzeichnis: Datei oder Verzeichnis nicht gefunden
Kommentare zum Code würden mir auch schon helfen.