Advertisement
Guest User

Umbenennen Bash Skript V2

a guest
Nov 7th, 2010
355
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 1.56 KB | None | 0 0
  1. #!/bin/bash
  2. # Ersetzt Zeichen im Dateinamen rekursiv
  3. # Vorlage: http://www.linux-community.de/Community/Fragen/Bash-Rename-Skript
  4. # Aufruf des Skriptes auf Korrektheit pruefen
  5.  
  6. if [ -z $1 ];then echo Verwendung: umbenennen "/PFAD" ; exit 0;fi
  7.  
  8. # Meldung ungueltige Kodierung bearbeiten
  9.  
  10. convmv -f iso-8859-15 -t utf8 -r "$1" --notest
  11.  
  12. #
  13. # Skript Start
  14. #
  15.  
  16. find "$1" -depth -name "*" | while read file ; do
  17. directory=$(dirname "$file")
  18. oldfilename=$(basename "$file")
  19.  
  20. # sed und tr als Mittel der Bearbeitung
  21. # Befehle sind so aufgestellt, dass einzelne Aktionen
  22. # leicht durch Loeschen zwischen den Pipes
  23. # veraendert werden koennen
  24.  
  25. newfilename=$(echo "$oldfilename" | tr "'" "_" | tr '!@#+ ' '_____' | tr '[]{}' '()()()' | sed -e 's/[\`\´\"\]//g' | sed -e 's/\&/and/g' | sed -e 's/[àáâãäå]/ae/g;s/[ÀÁÂÃÄÅ]/Ae/g;s/[éëêè]/e/g;s/[ÈÉÊË€]/E/g;s/[ìíîï]/i/g;s/[ÌÍÎÏ¡]/I/g;s/[òóôõöø]/oe/g;s/[ÒÓÔÕÖ]/Oe/g;s/[ùúûü]/ue/g;s/[ÙÚÛÜ]/Ue/g;s/[ÿý?]/y/g;s/[ÝŸ]/Y/g;s/[æ]/ae/g;s/[Æ]/AE/g;s/[碩]/c/g;s/[Ç]/C/g;s/[ßš]/s/g;s/[$§Š]/S/g;s/[=¦#:~*¿·¸°¯\%";+^˜‰…‡†???•]/_/g;s/[²]/2/g;s/[³]/3/g' | sed -e 's/[^\(\)\.\/\_a-zA-Z0-9-]//g' | tr [:upper:] [:lower:])
  26.  
  27. # Katastrophenpotential einschraenken
  28. if [ "$oldfilename" != "$newfilename" ]; then
  29.  
  30. # Umbenennen beginnen
  31. mv -i "$directory/$oldfilename" "$directory/$newfilename"
  32.  
  33. # Benutzer informieren
  34. echo ""$directory/$oldfilename" ---> "$directory/$newfilename""
  35. #echo "$directory"
  36. #echo "$oldfilename"
  37. #echo "$newfilename"
  38. #echo
  39. fi
  40. done
  41. exit 0
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement