Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- ProcessOneFolder()
- {
- folder=$1
- currentFolder=`pwd`
- cd "$folder"
- base=""
- full=""
- name=""
- for file in *.nfo; do
- nfo=".nfo"
- empty=""
- slash="/"
- and="&"
- singleQuote="'"
- singleQuoteReplaced="'"
- base=${file/$nfo/$empty}
- name=`cat "$file" | grep -i "<originaltitle>"`
- if [[ ! -n $name ]]
- then
- name=`cat "$file" | grep -i "<title>"`
- fi
- name=`echo $name | sed 's/<[^>]*[>]//g'`
- name="${name#"${name%%[![:space:]]*}"}"
- name="${name%"${name##*[![:space:]]}"}"
- name=${name// : / }
- name=${name// :/ }
- name=${name//: / }
- name=${name//:/ }
- name=${name//$and/And}
- name=${name//$singleQuote/$singleQuoteReplaced}
- name=${name//$slash/$empty}
- year=`cat "$file" | grep -i "<year>" | sed 's/<[^>]*[>]//g'`
- year=${year//[[:space:]]/}
- full="$name ($year)"
- done
- if [[ ! -n $name ]]
- then
- cd "$currentFolder"
- return 0
- fi
- for file in "${base}"*.*; do
- if [[ "$file" == *$base* ]]
- then
- newFile=${file/$base/$full}
- if [[ "$newFile" != "$file" ]]
- then
- mv "$file" "$newFile"
- fi
- fi
- done
- cd "$currentFolder"
- if [[ "$folder" != "$full" ]]
- then
- mv "$folder" "$full"
- fi
- }
- FindFolderByFirstLetter()
- {
- letter=$1
- for dir in ${letter}*; do
- ProcessOneFolder "$dir"
- done
- }
- Main()
- {
- #ProcessOneFolder "A Knight' Tale (2001)"
- for letter in A B C D E F G H I J K L M N O P Q R S T U V W X Y Z; do
- FindFolderByFirstLetter $letter
- done
- }
- Main
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement