Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- HELP_OPT=0
- SMALL_OPT=0
- RECUR=0
- E_OPT=0
- V_OPT=0
- WZORZEC=0;
- WG_WZ=0;
- #9.Napisać skrypt, który w podanym katalogu zamieni nazwy plików
- # pisane wielkimi literami na pisane małymi. Ponadto będzie mógł
- #zmieniać podane wzorce nazw i rekurencyjnie w podkatalogach. Będzie
- #też można podać parametr określający czy zmieniane mają być wielkie
- #litery na małe czy odwrotnie.
- #Uwaga: nie można korzystać z plecenia find.
- help()
- {
- echo "skrypt Bogdan - pomoc"
- echo "-h wyświetla pomoc i kończy pracę"
- echo "-v wyswietla wersję i kończy pracę"
- echo "-d zamiana z dużych liter na małe"
- echo "-e bez zmiany rozszezenia w pliku"
- echo "-r oraz -R zamiana nazw plikow rekursywnie w podkatalogach"
- echo "-w zmiana tylko nazw plikow ktore spelniaja podany wzorzec"
- echo "przyjmuje wzorzec jako parametr"
- echo "-x zmiana w okreslonym folderze. przyjmuje sciezke jako argument"
- }
- wersja()
- {
- echo "wersja skryptu Bogdan"
- echo "jedyna jaka istnieje - 1.0"
- }
- dnam()
- {
- for stara_nazwa in *; do
- if [ -f "$stara_nazwa" ]; then
- nowa_nazwa="$(echo $stara_nazwa | tr '[:upper:]' '[:lower:]')"
- mv "$stara_nazwa" "$nowa_nazwa"
- fi
- done
- }
- mnad()
- {
- for stara_nazwa in *; do
- if [ -f "$stara_nazwa" ]; then
- nowa_nazwa="$(echo $stara_nazwa | tr '[:lower:]' '[:upper:]')"
- mv "$stara_nazwa" "$nowa_nazwa"
- fi
- done
- }
- dname()
- {
- for stara_nazwa in *; do
- if [ -f "$stara_nazwa" ]; then
- temp=`echo $stara_nazwa | grep -E "(\.)[0-9a-zA-Z]"`
- if [ -z $temp ]; then
- nowa_nazwa="$(echo $stara_nazwa | tr '[:upper:]' '[:lower:]')"
- else
- rozszezenie="${stara_nazwa##*.}"
- nazwa="${stara_nazwa%.*}"
- nazwa="$(echo $nazwa | tr '[:upper:]' '[:lower:]')"
- nowa_nazwa=${nazwa}.${rozszezenie}
- echo $nowa_nazwa
- fi
- mv "$stara_nazwa" "$nowa_nazwa"
- fi
- done
- }
- mnade()
- {
- for stara_nazwa in *; do
- if [ -f "$stara_nazwa" ]; then
- temp=`echo $stara_nazwa | grep -E "(\.)[0-9a-zA-Z]"`
- if [ -z $temp ]; then
- nowa_nazwa="$(echo $stara_nazwa | tr '[:lower:]' '[:upper:]')"
- else
- rozszezenie="${stara_nazwa##*.}"
- nazwa="${stara_nazwa%.*}"
- nazwa="$(echo $nazwa | tr '[:lower:]' '[:upper:]')"
- nowa_nazwa=${nazwa}.${rozszezenie}
- echo $nowa_nazwa
- fi
- mv "$stara_nazwa" "$nowa_nazwa"
- fi
- done
- }
- mnadr()
- {
- cd "$1"
- mnad
- for cos in *; do
- if [ -d "$cos" ]; then
- mnadr "$cos"
- fi
- done
- cd ../
- }
- dnamr()
- {
- cd "$1"
- dnam
- for cos in *; do
- if [ -d "$cos" ]; then
- dnamr "$cos"
- fi
- done
- cd ../
- }
- mnader()
- {
- cd "$1"
- mnade
- for cos in *; do
- if [ -d "$cos" ]; then
- mnadr "$cos"
- fi
- done
- cd ../
- }
- dnamer()
- {
- cd "$1"
- dname
- for cos in *; do
- if [ -d "$cos" ]; then
- dnamr "$cos"
- fi
- done
- cd ../
- }
- echo "skrypt Bogdan"
- echo "zmienia nazwy plikow z pisanych malymi literami"
- echo "na nazwy pisane duzymi literami"
- FOLDER=$(pwd)
- OBECNY=$(pwd)
- while getopts "hvdrRewx:" OPTION
- do
- case $OPTION in
- h) #help
- HELP_OPT=1;;
- v) #wersja
- V_OPT=1;;
- d) #male litery
- SMALL_OPT=1;;
- r) #rekursywnie
- RECUR=1;;
- R) #rekursywnie
- RECUR=1;;
- e) echo "bez zmiany rozszezenia w pliku"
- E_OPT=1;;
- w) echo "wg wzorca"
- WG_WZ=1;
- echo $OPTARG
- WZORZEC=$OPTARG;;
- x)
- FOLDER=$OPTARG;;
- ?)
- echo "nie ma takiej opcji, oto pomoc"
- HELP_OPT=1;;
- esac
- done
- if [ $HELP_OPT -eq 1 ]
- then
- help
- exit 0
- fi
- if [ $V_OPT -eq 1 ]
- then
- wersja
- exit 0
- fi
- #prosta zamina z duzych liter na male bez rekurencji
- if [ $WG_WZ -eq 0 -a $E_OPT -eq 0 -a $SMALL_OPT -eq 1 -a $RECUR -eq 0 ]
- then
- cd "$FOLDER"
- dnam
- cd "$OBECNY"
- exit 0
- fi
- #prosta zamiana z malych na duze bez rekurencji
- if [ $WG_WZ -eq 0 -a $E_OPT -eq 0 -a $SMALL_OPT -eq 0 -a $RECUR -eq 0 ]
- then
- cd "$FOLDER"
- mnad
- cd "$OBECNY"
- exit 0
- fi
- #zamina z duzych liter na male z rekurencja
- if [ $WG_WZ -eq 0 -a $E_OPT -eq 0 -a $SMALL_OPT -eq 1 -a $RECUR -eq 1 ]
- then
- dnamr $FOLDER
- cd "$OBECNY"
- exit 0
- fi
- #zamina z malych liter na duze z rekurencja
- if [ $WG_WZ -eq 0 -a $E_OPT -eq 0 -a $SMALL_OPT -eq 0 -a $RECUR -eq 1 ]
- then
- mnadr $FOLDER
- cd "$OBECNY"
- exit 0
- fi
- #zamina z duzych liter na male bez rekurencji i zmiany rozszenia
- if [ $WG_WZ -eq 0 -a $E_OPT -eq 1 -a $SMALL_OPT -eq 1 -a $RECUR -eq 0 ]
- then
- cd "$FOLDER"
- dname
- cd "$OBECNY"
- exit 0
- fi
- #zamiana z malych na duze bez rekurencji i zmiany rozszezenia
- if [ $WG_WZ -eq 0 -a $E_OPT -eq 1 -a $SMALL_OPT -eq 0 -a $RECUR -eq 0 ]
- then
- cd "$FOLDER"
- mnade
- cd "$OBECNY"
- exit 0
- fi
- #zamina z duzych liter na male z rekurencja i bez zmiany rozszenia
- if [ $WG_WZ -eq 0 -a $E_OPT -eq 1 -a $SMALL_OPT -eq 1 -a $RECUR -eq 1 ]
- then
- dnamer $FOLDER
- cd "$OBECNY"
- exit 0
- fi
- #zamiana z malych na duze z rekurencja i bez zmiany rozszezenia
- if [ $WG_WZ -eq 0 -a $E_OPT -eq 1 -a $SMALL_OPT -eq 0 -a $RECUR -eq 1 ]
- then
- mnader $FOLDER
- cd "$OBECNY"
- exit 0
- fi
Advertisement
Add Comment
Please, Sign In to add comment