#!/bin/bash
#funziona ma con qualche imprecisione
# Realizzare uno script che stampi un menu e permetta di eseguire le operazione in esso
# specificate.
# 1: Indica il numero di riga contenente la parola tastiera
# 2: Sostiutisce tutte le occorrenze della parola tastiera con la parola keyboard
# 3: Conta il numero di linee di cui è composto un file
# Controllare l'input
# Pulizia bash
clear
# Controlli sull'input
if [ $# -ne 1 ]
then echo "Errore immissione numero parametri" ; exit 1
fi
if [ ! -e $1 ]
then echo "File non trovato" ; exit 2
fi
if [ ! -f $1 ]
then echo "File non regolare" ; exit 3
fi
# Inizializzazione variabile piu' saluto
scelta=4
echo "Ciao $USER"
# Stampa del menu
while [ $scelta -gt 3 ]
do
echo "Digitare il numero corrispondente all'azione che si vuole eseguire"
echo "1: Indica il numero di riga contenente la parola \"tastiera\""
echo "2: Sostiutisce tutte le occorrenze della parola \"tastiera\" con la parola \"keyboard\""
echo "3: Conta il numero di linee di cui è composto un file"
read scelta
done
# Esecizione dei comandi a seconda della scelta
case $scelta in
# Cerca la parola tastiera e stampa i numeri di riga
1) grep -n "tastiera" $1 | cut -c 1 ;; # Impreciso se il numero e' >9 non va
# Sostituisce le parole nel file e visualizza il file
2) sed -i 's/tastiera/keyboard/g' $1 ; cat $1 ;;
# Aggiunge i numeri di riga e stampa solo l'ultimo
3) awk '{printf("%d", NR)}' $1 | tail -1 ; echo ;;
esac
exit 0