Guest User

Untitled

a guest
Jan 22nd, 2018
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.54 KB | None | 0 0
  1. ## zsh -x /bin/rename
  2. +/bin/rename:3> setopt nullglob
  3. +/bin/rename:81> folders .
  4.  
  5. ## cat /bin/rename
  6.  
  7. #!/usr/bin/env zsh
  8.  
  9. # UIB-290708 SANITIZES FILE- AND FOLDER NAMES
  10.  
  11. setopt nullglob
  12.  
  13. folders () {
  14.  
  15. # Ignore DVDs.
  16.  
  17. for old in ^(AUDIO_TS|VIDEO_TS); do
  18.  
  19. if [ -f "$old" ]; then
  20.  
  21. files "$old"
  22.  
  23. elif [ -d "$old" ]; then
  24.  
  25. new=$(echo "$old" | tr "[:upper:]" "[:lower:]")
  26.  
  27. new=$(echo "$new" | sed -e 's/ /_/g' -e 's/\./_/g' -e 's/[_-][()]/-/g' -e 's/[()][_-]/-/g' -e 's/[()]//g' -e 's/[_-]$//g' -e 's/[_-]\{2,\}/-/g' -e 's/[][`!,'\'']//g' -e 's/&/and/g')
  28.  
  29. if [ "$old" != "$new" ]; then
  30.  
  31. mv "$old" "$new"
  32.  
  33. echo "$old -> $new"
  34.  
  35. else
  36.  
  37. echo "$old: nothing to do"
  38.  
  39. fi
  40.  
  41. cd "$new"
  42.  
  43. folders "$new"
  44.  
  45. cd ..
  46.  
  47. else
  48.  
  49. echo "$new: directory invalid"
  50.  
  51. fi
  52.  
  53. done
  54.  
  55. }
  56.  
  57. files () {
  58.  
  59. old=$1
  60.  
  61. new=$(echo "$old" | tr "[:upper:]" "[:lower:]")
  62.  
  63. if [[ "$old" == *.* ]]; then
  64.  
  65. # Take out the extension.
  66.  
  67. extension=${new##*.}
  68.  
  69. new=${new%.*}
  70.  
  71. new=$(echo "$new" | sed -e 's/ /_/g' -e 's/\./_/g' -e 's/[_-][()]/-/g' -e 's/[()][_-]/-/g' -e 's/[()]//g' -e 's/[_-]$//g' -e 's/[_-]\{2,\}/-/g' -e 's/[][`!,'\'']//g' -e 's/&/and/g')
  72.  
  73. new=$(echo "$new" | sed -e 's/^\([0-9]\{2,3\}\)_/\1-/g')
  74.  
  75. # Put it back in.
  76.  
  77. new="$new"."$extension"
  78.  
  79. if [ "$old" != "$new" ]; then
  80.  
  81. mv "$old" "$new"
  82.  
  83. echo "$old -> $new"
  84.  
  85. else
  86.  
  87. echo "$old: nothing to do"
  88.  
  89. fi
  90.  
  91. fi
  92.  
  93. }
  94.  
  95. folders .
Add Comment
Please, Sign In to add comment