Advertisement
Binomico

Unix/Linux runscript.sh - renaming script

Jan 5th, 2012
118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #!/bin/sh
  2.  
  3. #---------------------------------------------------------------------------
  4. #------- Script "bereinigt" Datei / Ordner -  Namen und entfernt
  5. #------- ungewollte u. unoetige Dateien / Dateinamen-Parts wie
  6. #------- Scene-Tags oder Sprachangaben und bringt die Dateien in
  7. #------- eine saubere Dateikultur
  8. #-------
  9. #------- Initial-Script für pyLoad "package_finished" / "unrar_finished"
  10. #------- findet ihr unter http://pastebin.com/veq9miyX
  11. #-------
  12. #------- aktuelle "ipkg tr" "ipkg sed" "ipkg find" Pakete vorausgesetzt!
  13. #------- "ipkg update" "ipkg install tr sed find"
  14. #---------------------------------------------------------------------------
  15.  
  16. #---------------------------------------------------------------------------
  17. #------- persoenliche Pfadangaben in http://pastebin.com/veq9miyX bearbeiten
  18. #---------------------------------------------------------------------------
  19.  
  20. PATH=/opt/bin:/opt/sbin
  21.  
  22. #---------------------------------------------------------------------------
  23. #------- entferne unnoetige Dateien und Ordner
  24. #------- Textdateien / Info-Dateien / Reparatur-Dateien / Untertitel ...
  25. #---------------------------------------------------------------------------
  26.  
  27. cd "$UF_FOLDER"
  28. /opt/bin/find . \( -name '*.sfv' -o -name '*.nfo' -o -name '*.txt' -o -name '*.rev' \) -type f -exec rm '{}' \;
  29. /opt/bin/find . \( -iname '*sample*' -o -iname 'subs' -o -iname '*imdb*' \) -type d -exec rm -rf '{}' \;
  30.  
  31. #---------------------------------------------------------------------------
  32. #------- entferne Leerzeichen und ersetze Sonderzeichen mit Punkten
  33. #---------------------------------------------------------------------------
  34.  
  35. renRecursive()
  36. {
  37. /opt/bin/find `$UF_FOLDER/`* ! -name "*.sh" -type d -print | while read FILE
  38. do
  39. if [ -d $FILE ]; then
  40.         cd $FILE
  41.         renRecursive
  42.         renFolder
  43.         renFiles
  44.         cd ..
  45. fi
  46. done
  47. }
  48.  
  49. renFolder()
  50. {
  51. /opt/bin/find `$UF_FOLDER/`* ! -name "*.sh" -type d -print | while read FILE
  52. do
  53. if [ -d "$FILE" ]; then
  54.         NEW=`echo "$FILE" | sed -r 's/ +/./g' | sed -r 's/-/./g;s/_/./g;s/^\.+//;s/\.+$//' | tr -s '.'`
  55.         if [ $NEW != $FILE -a ! -f $NEW -a ! -d $NEW ]; then
  56.         mv "$FILE" "$NEW"
  57.     fi
  58. fi
  59. done
  60. }
  61.  
  62. renFiles()
  63. {
  64. /opt/bin/find `$UF_FOLDER/`* ! -name "*.sh" -type f -print | while read FILE
  65. do
  66. if [ -f "$FILE" ]; then
  67.         NEW=`echo "$FILE" | sed -r 's/ +/./g' | sed -r 's/-/./g;s/_/./g;s/^\.+//;s/\.+$//' | tr -s '.'`
  68.         if [ $NEW != $FILE -a ! -f $NEW -a ! -d $NEW ]; then
  69.         mv "$FILE" "$NEW"
  70.     fi
  71. fi
  72. done
  73. }
  74.  
  75. #---------------------------------------------------------------------------
  76. #------- aendere rekursiv alles in Kleinbuchstaben
  77. #---------------------------------------------------------------------------
  78.  
  79. lowRecursive()
  80. {
  81. /opt/bin/find `$UF_FOLDER/`* -name "*" -type d -print | while read FILE
  82. do
  83. if [ -d $FILE ]; then
  84.         cd $FILE
  85.         lowRecursive
  86.         lowFiles
  87.         cd ..
  88.     fi
  89. done
  90. }
  91.  
  92. lowFiles()
  93. {
  94. /opt/bin/find `$UF_FOLDER/`* ! -name "*.sh" | while read FILE
  95. do
  96. if [ -f $FILE -o -d $FILE ]; then
  97.         NEW=`echo $FILE | tr 'A-Z' 'a-z'`
  98.         if [ $NEW != $FILE -a ! -f $NEW -a ! -d $NEW ]; then
  99.         mv "$FILE" "$NEW"
  100.     fi
  101. fi
  102. done
  103. }
  104.  
  105. #---------------------------------------------------------------------------
  106. #------- entferne Szene-Tags und / oder unnoetige Dateinamenteile
  107. #------- "$DELNAME" Pfadangabe unter http://pastebin.com/veq9miyX
  108. #------- anpassen und die entsprechende Datei erstellen / editieren
  109. #---------------------------------------------------------------------------
  110.  
  111. rmTagsRecursive()
  112. {
  113. /opt/bin/find `$UF_FOLDER/`* ! -name "*.sh" -type d -print | while read FILE
  114. do
  115. if [ -d $FILE ]; then
  116.         cd "$FILE"
  117.         rmTagsRecursive
  118.         rmTags
  119.         cd ..
  120. fi
  121. done
  122. }
  123.  
  124. rmTags()
  125. {
  126. for i in `cat $DELNAME`
  127. do
  128. /opt/bin/find `$UF_FOLDER/`* ! -name "*.sh" -print | while read FILE
  129. do
  130. if [ -d $FILE ]; then
  131.     NEW=`echo $FILE | sed -r 's/'"$i"'\.//g' | sed -r 's/\.'"$i"'//g'`
  132.         if [ $NEW != $FILE -a ! -f $NEW -a ! -d $NEW ]; then
  133.     mv "$FILE" "$NEW"
  134.     fi
  135. fi
  136. if [ -f $FILE ]; then
  137.     NEW=`echo $FILE | sed -r 's/'"$i"'\.//g' | sed -r 's/'"$i"'//g'`
  138.         if [ $NEW != $FILE -a ! -f $NEW -a ! -d $NEW ]; then
  139.     mv "$FILE" "$NEW"
  140.     fi
  141. fi
  142. done
  143. done
  144. }
  145.  
  146. #---------------------------------------------------------------------------
  147. #------- aendere ersten Buchstaben nach einem Punkt in einen Grossbuchstaben
  148. #---------------------------------------------------------------------------
  149.  
  150. upRecursive()
  151. {
  152. /opt/bin/find `$UF_FOLDER/`* ! -name "*.sh" -type d -print | while read FILE
  153. do
  154. if [ -d $FILE ]; then
  155.         cd "$FILE"
  156.         upRecursive
  157.         upFolder
  158.         upFiles
  159.         cd ..
  160. fi
  161. done
  162. }
  163.  
  164. upFolder()
  165. {
  166. /opt/bin/find `$UF_FOLDER/`* ! -name "*.sh" -type d -print | while read FILE
  167. do
  168.    if [ -d $FILE ]; then
  169.         # nachfolgende Codezeile darf nicht "gelinebreakt" werden!
  170.         NEW=`echo $FILE | sed -r 's/(\<.)/\u\1/g;s/([se][0123456789])/\u\1/g;s/Dvd/DVD/;s/Dts/DTS/;s/Csi/CSI/;s/Hd/HD/'`
  171.         if [ $NEW != $FILE -a ! -f $NEW -a ! -d $NEW ]; then
  172.         mv "$FILE" "$NEW"
  173.     fi
  174.    fi
  175. done
  176. }
  177.  
  178. upFiles()
  179. {
  180. /opt/bin/find `$UF_FOLDER/`* ! -name "*.sh" -type f -print | while read FILE
  181. do
  182.    if [ -f $FILE ]; then
  183.         # nachfolgende Codezeile darf nicht "gelinebreakt" werden!
  184.     NEW=`echo $FILE | sed -r 's/(\<.)/\u\1/g;s/([se][0123456789])/\U\1/g;s/Dvd/DVD/;s/Dts/DTS/;s/Hd/HD/;s/Csi/CSI/' | sed -r 's/(\....)$/\L\1/'`
  185.         if [ $NEW != $FILE -a ! -f $NEW -a ! -d $NEW ]; then
  186.     mv "$FILE" "$NEW"
  187.     fi
  188.    fi
  189. done
  190. }
  191.  
  192. renRecursive
  193. sleep 1
  194. renFolder
  195. sleep 1
  196. renFiles
  197.  
  198. sleep 1
  199. lowRecursive
  200. sleep 1
  201. lowFiles
  202.  
  203. sleep 1
  204. rmTagsRecursive
  205. sleep 1
  206. rmTags
  207.  
  208. sleep 1
  209. renRecursive
  210. sleep 1
  211. renFolder
  212. sleep 1
  213. renFiles
  214.  
  215. sleep 1
  216. upRecursive
  217. sleep 1
  218. upFolder
  219. sleep 1
  220. upFiles
  221.  
  222. #---------------------------------------------------------------------------
  223. #------- verschiebe Dateien und Ordner ins Zielverzeichnis
  224. #------- loesche "runscript.sh" aus dem Downloadverzeichnis
  225. #---------------------------------------------------------------------------
  226.  
  227. sleep 5
  228. /opt/bin/find `$UF_FOLDER/`* -iname "Runscript.sh" -print | while read FILE
  229. do
  230. rm "$FILE"
  231. done
  232.  
  233. copy2destination()
  234. {
  235. echo "`date` /opt/bin/find `$UF_FOLDER/`* ! -iname "*.sh"" >> $LOGFILE
  236. /opt/bin/find `$UF_FOLDER/`* ! -iname "*.sh" -print | while read FILE
  237. do
  238.         echo "mv "$FILE" "$DESTINATION/"" >> $LOGFILE
  239.         mv "$FILE" "$DESTINATION/"
  240. done
  241. }
  242.  
  243. copyseries()
  244. {
  245. for SERIEN in `cat $SERIES`
  246. do
  247. #---------------------------------------------------------------------------
  248. #------- entferne "-type f" um die Datei inkl. Ordner, falls vorhanden, zu verschieben
  249. #---------------------------------------------------------------------------
  250. echo "`date` /opt/bin/find `$UF_FOLDER/`* -iname "*"$SERIEN"*" -type f" >> $LOGFILE
  251. /opt/bin/find `$UF_FOLDER/`* -iname "*"$SERIEN"*" -type f -print | while read SERIE
  252.         do
  253.     echo "mv "$SERIE" "$DESTISERIEN/"$SERIEN"/"" >> $LOGFILE
  254.         mv "$SERIE" "$DESTISERIEN/"$SERIEN"/"
  255.         done
  256. done
  257. }
  258. copyseries
  259.  
  260. #---------------------------------------------------------------------------
  261. #------- loesche das - leere - Downloadverzeichnis
  262. #---------------------------------------------------------------------------
  263.  
  264. if [ $? -eq 0 ] ; then
  265.  sleep 25; rm -rf "$UF_FOLDER"
  266. else
  267.  copy2destination
  268. fi
  269.  
  270. if [ $? -eq 0 ] ; then
  271. sleep 25; rm -rf "$UF_FOLDER"
  272. fi
  273.  
  274. #---------------------------------------------------------------------------
  275. #------- Scriptende
  276. #---------------------------------------------------------------------------
  277.  
  278. exit 0
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement