Advertisement
Tobiasz931

Derpy v1.0

Dec 1st, 2012
269
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 2.96 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. rflag=
  4. eflag=
  5. bflag=
  6. sflag=
  7. fflag=
  8.  
  9. while getopts "hvrsbfel:" opt
  10. do
  11.     case $opt in
  12.         h)
  13.             echo "-e aby zmienic rozszerzenia"
  14.             echo "-b aby zmienic litery w nazwach na duze"
  15.             echo "-s aby zmienic litery w nazwach na male"
  16.             echo "-f aby zmienic fragmenty nazw"
  17.             echo "-r aby wykonac zadanie takze w podfolderach rekurencyjnie"
  18.             echo "-v aby wyswietlic wersje"
  19.             echo "-h aby wyswietlic pomoc"
  20.             echo "-l lokacja wykonania zadania w danej lokacji";;
  21.                
  22.         v)
  23.             echo "Derpy v1.0";;
  24.  
  25.         r)
  26.             rflag=1;;
  27.  
  28.         e)
  29.             eflag=1;;
  30.  
  31.         s)
  32.             sflag=1;;
  33.  
  34.         b)
  35.             bflag=1;;
  36.  
  37.         f)
  38.             fflag=1;;
  39.  
  40.         l)
  41.             if [ -d $OPTARG ]; then
  42.                 if [ -d "$OPTARG" ]; then
  43.                     dir=$OPTARG
  44.                 fi
  45.             else
  46.                 echo "Nie ma takiego folderu."
  47.                 exit 0
  48.             fi;;
  49.                
  50.         ?)
  51.             echo "Nie ma takiej opcji. Aby wyswietlic pomoc uzyj opcji -h.";;
  52.        
  53.     esac
  54. done
  55.  
  56. chext(){
  57.     cd "$1"
  58.     for old in *.$zjakiego; do
  59.         dir=$old
  60.         if [ -f "$old" ]; then
  61.             new=${old%$zjakiego}"$najaki"
  62.             if [ "$old" != "$new" ]; then
  63.                 mv $old $new
  64.             fi
  65.         fi
  66.     done
  67.     if [ ! -z $rflag ]; then
  68.         for d in *; do
  69.             if [ -d "$d" ]; then
  70.                 chext "$d"
  71.             fi
  72.         done
  73.     fi
  74.     cd ../
  75. }
  76.  
  77. chname(){
  78.     cd "$1"
  79.     for old in *; do
  80.         if [ -f "$old" ]; then
  81.             bezext=`echo $old | grep -E "(\.)"`
  82.             if [ -z $bezext ]; then
  83.                 if [ ! -z $bflag ]; then
  84.                     new="$(echo $old | tr '[:lower:]' '[:upper:]')"
  85.                 fi
  86.                 if [ ! -z $sflag ]; then
  87.                     new="$(echo $old | tr '[:upper:]' '[:lower:]')"
  88.                 fi
  89.             else
  90.                 ext="${old##*.}"
  91.                 name="${old%.*}"
  92.                 if [ ! -z $bflag ]; then
  93.                     name="$(echo $name | tr '[:lower:]' '[:upper:]')"
  94.                 fi
  95.                 if [ ! -z $sflag ]; then
  96.                     name="$(echo $name | tr '[:upper:]' '[:lower:]')"
  97.                 fi
  98.                 new=${name}.${ext}
  99.             fi
  100.             if [ "$old" != "$new" ]; then
  101.                 mv "$old" "$new"
  102.             fi
  103.         fi
  104.         if [ -d "$old" ] && [ ! -z $rflag ]; then
  105.             chname "$old"
  106.         fi
  107.     done
  108. }
  109.  
  110. chnamefrag(){
  111.     cd "$1"
  112.     for old in *; do
  113.         if [ -f "$old" ]; then
  114.             bezext=`echo $old | grep -E "(\.)"`
  115.             if [ -z $bezext ]; then
  116.                 new=$( echo $old | sed "s/$zjakiego/$najaki/g" )
  117.             else
  118.                 ext="${old##*.}"
  119.                 name="${old%.*}"
  120.                 name=$( echo $name | sed "s/$zjakiego/$najaki/g" )
  121.                 new=${name}.${ext}
  122.             fi
  123.             if [ "$old" != "$new" ]; then
  124.                 mv "$old" "$new"
  125.             fi
  126.         fi
  127.         if [ -d "$old" ] && [ ! -z $rflag ]; then
  128.             chnamefrag "$old"
  129.         fi
  130.     done
  131. }
  132.  
  133. if [ ! -z $sflag ] && [ -z $bflag ];then
  134.     chname "$dir"
  135. fi
  136. if [ ! -z $bflag ] && [ -z $sflag ];then
  137.     chname "$dir"
  138. fi
  139. if [ ! -z $bflag ] && [ ! -z $sflag ];then
  140.     echo "Opcje -s i -b nie powinny byc uzyte razem."
  141. fi
  142. if [ ! -z $eflag ]; then
  143.     echo "Z jakiego rozszerzenia zmienic?"
  144.     read zjakiego
  145.     echo "Na jakie rozszerzenie zmienic?"
  146.     read najaki
  147.     chext "$dir"
  148. fi
  149. if [ ! -z $fflag ]; then
  150.     echo "Jaki fragment nazwy zmienic?"
  151.     read zjakiego
  152.     echo "Na jaki tekst zmienic ten fragment?"
  153.     read najaki
  154.     chnamefrag "$dir"
  155. fi
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement