diff --git a/EOPSY/task1/.modify.sh.swp b/EOPSY/task1/.modify.sh.swp deleted file mode 100644 index 124be954..00000000 Binary files a/EOPSY/task1/.modify.sh.swp and /dev/null differ diff --git a/EOPSY/task1/bigletters/bigger/lol b/EOPSY/task1/bigletters/bigger/lol deleted file mode 100644 index e69de29b..00000000 diff --git a/EOPSY/task1/bigletters/lol b/EOPSY/task1/bigletters/lol deleted file mode 100644 index e69de29b..00000000 diff --git a/EOPSY/task1/modify.sh b/EOPSY/task1/modify.sh index da0e664b..28444283 100755 --- a/EOPSY/task1/modify.sh +++ b/EOPSY/task1/modify.sh @@ -3,7 +3,6 @@ # simple version # the name of the script without a path -name=`basename $0` help() { @@ -26,6 +25,15 @@ uppercase() error_msg "missing filename for -u" exit 1 fi + if test -f "$1" + then + if test -d "$1" + then + error_msg "$1 is neither a file nor folder" + exit 3 + fi + fi + mv "$1" $(echo "$1" | sed -r -e 's/.*/\U&/'); @@ -62,8 +70,15 @@ sneed() error_msg "missing sed filename" exit 2 fi - echo "$1" - echo $1 + if test -f "$2" + then + if test -d "$2" + then + error_msg "$2 is neither a file nor folder" + exit 3 + fi + fi + mv "$2" $(echo "$2" | sed $1) } @@ -80,24 +95,30 @@ recursionSneed() error_msg "missing sed filename" exit 2 fi - - if test -d "$2" - then - sneed "$1" "$2" - cd "$2" - for file in * + + if test -f "$2" + then + if test -d "$2" + then + error_msg "$2 is neither a file or folder" + exit 3 + fi + fi + filename="$2" + sneed "$1" "$filename" + filename="$(echo "$filename" | sed $1)" + echo $filename + for item in "$filename"/* do - recursionSneed "$1" "$file" + if test -d "$item" + then + recursionSneed "$1" "$item" + fi + if test -f "$item" + then + sneed "$1" "$item" + fi done - fi - - if test -f "$2" - then - sneed "$1" "$2" - fi - - - } recursionLowercase() @@ -120,7 +141,7 @@ recursionLowercase() recursionUppercase() { uppercase "$1" - set "$(echo "$1" | sed -r -e 's/.*/\L&/')" + set "$(echo "$1" | sed -r -e 's/.*/\U&/')" for item in "$1"/* do if test -d "$item" @@ -158,7 +179,6 @@ error_msg() echo "$name: error: $1" 1>&2 } -# function for servicing -w option # if no arguments given @@ -169,17 +189,13 @@ fi # do with command line arguments -while test "x$1" != "x" -do - case "$1" in - -h|--help) help;; - -l|--lowercase) lowercase "$2";; - -r|--recursion) recursion "$2" "$3" ;; - -u|--upercase) uppercase "$2";; - *) sneed "$1" "$2" ;; - esac - shift -done +case "$1" in + -h|--help) help;; + -l|--lowercase) lowercase "$2";; + -r|--recursion) recursion "$2" "$3" ;; + -u|--upercase) uppercase "$2";; + *) sneed "$1" "$2" ;; +esac diff --git a/EOPSY/task1/modify_examples.sh b/EOPSY/task1/modify_examples.sh old mode 100644 new mode 100755 index e69de29b..6760f089 --- a/EOPSY/task1/modify_examples.sh +++ b/EOPSY/task1/modify_examples.sh @@ -0,0 +1,77 @@ +#!/bin/bash + +touch a +touch B +touch SED +mkdir foldera +mkdir FOLDERB +mkdir FOLDERSED +mkdir upperfoldermain +cd upperfoldermain +touch upperfilesub +mkdir upperfoldersub +cd upperfoldersub +touch upperfilesubsub +cd .. +cd .. + + +mkdir LOWERCASEFOLDERMAIN +cd LOWERCASEFOLDERMAIN +touch LOWERFILESUB +mkdir LOWERFOLDERSUB +cd LOWERFOLDERSUB +touch LOWERFILESUBSUB +cd .. +cd .. + +mkdir SEDLOWERCASEFOLDERMAIN +cd SEDLOWERCASEFOLDERMAIN +touch SEDLOWERFILESUB +mkdir SEDLOWERFOLDERSUB +cd SEDLOWERFOLDERSUB +touch SEDLOWERFILESUBSUB +cd .. +cd .. + +touch recursefile +touch RECURSELOWERFILE +touch SEDRECURSEFILE + + + +echo "Typical scenarios" +echo "Uppercasing file with filename a" +echo "Lowercasing file with filename B" +echo "Using sed pattern for lowercasing of file with filename SED" +echo "Uppercasing folder with name foldera non recursively" +echo "Lowercasing folder with name FOLDERB non recursively" +echo "Using sed pattern for lowercasing of folder with name FOLDERSED non recursively" + +echo "Uppercasing folder recursively" +echo "Main folder name: upperfoldermain" +echo "folder contains: folder named upperfoldersub , file named upperfilesub" +echo "subfolder upperfoldersub contains file named upperfilesubsub" + +echo "Lowercasing folder recursively" +echo "Main folder name: LOWERFOLDERMAIN" +echo "folder contains: folder named LOWERFOLDERSUB , file named LOWERFILESUB" +echo "subfolder LOWERFOLDERSUB contains file named LOWERFILESUBSUB" + +echo "using sed pattern for Lowercasing folder recursively" +echo "Main folder name: SEDLOWERFOLDERMAIN" +echo "folder contains: folder named SEDLOWERFOLDERSUB , file named SEDLOWERFILESUB" +echo "subfolder SEDLOWERFOLDERSUB contains file named SEDLOWERFILESUBSUB" + +echo "Uncommon scenarios" +echo "uppercasing recursively normal file recursefile" +echo "lowercasing recursively normal file RECURSELOWERFILE" +echo "using sed pattern recursively for normal file to lowercase it SEDRECURSEFILE" + +echo "Incorrect scenarios" +echo "not providing enough arguments" +echo "not providing file" +echo "not providing argument for recursion" +echo "provding filename/foldername for file/folder which does not exist" + +