Script search.sh
Jump to navigation
Jump to search
#!/bin/sh # # search.sh # v 1.1 # echo echo cerca una stringa nei file contenuti nella cartella specificata: echo se non e\' stato specificato nessuna cartella, echo cerca nella cartella attuale; echo se il primo parametro passato e\' -R, fa una ricerca in tutte le sottodirectory; echo #--- E' stato inserita almeno la STRING da cercare? ---# if test -z "$1"; then echo Usage: $0 " [-R] [DIRECTORY] <STRING>" echo Usage: $0 " <STRING>" exit -1; fi; OPT=""; DIR=""; STR=""; # cerco di interpretare la volonta' dell'utente if test "$1" = "-R"; then # se l'opzione -R e' specificata OPT=$1; if [ -n "$3" ]; then # se esiste il terzo parametro, il secondo e' la directory DIR=$2; STR=$3; else # altrimenti il secondo e' la stringa DIR="."; STR=$2; fi; else # altrimenti se non e' stata specificata -R if [ -n "$2" ]; then # se esiste il secondo parametro, il primo e' la directory DIR=$1; STR=$2; else # altrimenti il primo e' la stringa DIR="."; STR=$1; fi; fi; echo "opt: $OPT"; echo "dir: $DIR"; echo "str: $STR"; sleep 1s; searchfn() { OPTfn=$1; DIRfn=$2; STRfn=$3; # eseguo il comando che ritengo volesse l'utente for FILE in $DIRfn/* $DIRfn/.[!.]*; do if test -f "$FILE"; then OUTfn=`cat -n "$FILE" | grep -i "$STRfn"`; if test "$OUTfn" != ""; then echo "file: $FILE"; echo "$OUTfn"; echo; fi; elif test -d "$FILE"; then if test "$OPTfn" = "-R"; then searchfn "$OPT" "$FILE" "$STR"; fi; fi; done; } searchfn "$OPT" "$DIR" "$STR"; exit 0; # End