find -type d ! -name "\." | sed -r -e 's/[[](.*)[]]/\1/' -e 's/ /_/g'
Guest Sapperlotwürde da gerne die eckigen Klammern sowie die Leerzeichen entfernen ..., um die Verzeichnisse anschließend in einem Shellskript weiterverarbeiten zu können.
for my$old(grep -d,<*>){$_=$old;s/[^a-zA-Z]/_/g;say"rename $old, $_"}
echo "$foo" "$bar" "`date`"
1 2 3 4 5
# Alle eckigen Klammern entfernen $string =~ tr/[]/d; # Oder: Matchende Klammern in Paaren entfernen 1 while $string =~ s#\[([^\[\]]*)\]#$1#g;
1
2
3
4
5
6
# Suche nach Verzeichnissen, deren Name ein unerwünschtes Zeichen enthaelt
# und entferne das erste Vorkommen des Zeichens im Namen
find -type d -name "*[*" -exec rename "[" "" {} +
find -type d -name "*]*" -exec rename "]" "" {} +
find -type d -name "* *" -exec rename " " "" {} +