Guest User

dirn

a guest
Dec 11th, 2010
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 1.92 KB | None | 0 0
  1. #!/usr/bin/env zsh  
  2. # bin/dirn
  3. # Parameter ist Verzeichnis
  4. # Gibt Befehl zum umbenennen in normalen Verzeichnisnamen zurück
  5.  
  6. whence mediainfo >/dev/null && true || return 1
  7.  
  8. sdebug=0
  9. olddir=$1
  10. # Falls Slash fehlt, hinzufügen
  11. [[ $olddir != */ ]] && olddir="$olddir"/
  12.  
  13. if [[ -d $olddir/CD1 ]]; then
  14.   testdir="$olddir"CD1/
  15. elif [[ -d $olddir/cd1 ]]; then
  16.   testdir="$olddir"cd1/
  17. elif [[ -d "$olddir""cd 1" ]]; then
  18.   testdir="$olddir""cd 1/"
  19. else
  20.   testdir=$olddir
  21. fi
  22. [[ $sdebug == "1" ]] && print Testdir: $testdir
  23.  
  24. for i in $testdir*.mp3; do
  25.   output=$(mediainfo -f "$i")
  26.   [[ $sdebug == "1" ]] && print Analysiere Datei: $i
  27.   # bei erster gefundenen Datei aus Schleife brechen
  28.   [[ "$output" != "" ]] && break
  29. done
  30. for i in $testdir*.flac; do
  31.   output=$(mediainfo -f "$i")
  32.   [[ $sdebug == "1" ]] && print Analysiere Datei: $i
  33.   # bei erster gefundenen Datei aus Schleife brechen
  34.   [[ "$output" != "" ]] && break
  35. done
  36. [[ "$output" == "" ]] && return 1
  37.  
  38. # Metadaten aus 'output' auslesen
  39. performer=$(print $output | grep '^Performer' | awk -F": " '{ print $2 }')
  40. album=$(print $output | grep '^Album                          ' | awk -F "   : " '{ print $2 }')
  41. year=$(print $output | grep '^Recorded' | awk -F": " '{ print $2 }' | sed 's/UTC //' | cut -c -4 )
  42. [[ "$year" -eq 0 ]] && year="FIXDATE"
  43.  
  44. [[ $sdebug == "1" ]] && print Newdir vor sed : "$performer - $album ($year)"
  45.  
  46. # newdir zusammensetzen und invalid chars mit "_" ersetzen
  47. newdir=$(print "$performer - $album ($year)" | sed -e 's/[|\<>%?^:*\/]/_/g')'/'
  48. [[ $sdebug == "1" ]] && print Newdir nach sed: print "$newdir"
  49. [[ "$newdir" != */ ]] && return 1
  50.  
  51. if [ "$olddir" = "$newdir" ]; then
  52.   print "# $olddir ist korrekt"
  53.   #elif [ "$(echo $newdir | rev | cut -c -2 | rev) != ')/'" ]; then
  54.   #echo irgendwas ist kaputt
  55. else
  56.   print 'mv -vi "'$olddir'" "'$newdir'"'
  57. fi
  58.  
  59. # vim:filetype=zsh foldmethod=marker autoindent expandtab shiftwidth=2
Advertisement
Add Comment
Please, Sign In to add comment