Share Pastebin
Guest
Public paste!

mishima

By: a guest | Feb 9th, 2010 | Syntax: Bash | Size: 1.47 KB | Hits: 41 | Expires: Never
Copy text to clipboard
  1. #!/bin/bash
  2. #funziona ma con qualche imprecisione
  3.  
  4. # Realizzare uno script che stampi un menu e permetta di eseguire le operazione in esso
  5. # specificate.
  6. # 1: Indica il numero di riga contenente la parola tastiera
  7. # 2: Sostiutisce tutte le occorrenze della parola "tastiera" con la parola "keyboard"
  8. # 3: Conta il numero di linee di cui è composto un file"
  9. # Controllare l'input
  10.  
  11. # Pulizia bash
  12. clear
  13.  
  14. # Controlli sull'input
  15. if [ $# -ne 1 ]
  16. then echo "Errore immissione numero parametri" ; exit 1
  17. fi
  18.  
  19. if [ ! -e $1 ]
  20. then echo "File non trovato" ; exit 2
  21. fi
  22.  
  23. if [ ! -f $1 ]
  24. then echo "File non regolare" ; exit 3
  25. fi
  26.  
  27. # Inizializzazione variabile piu' saluto
  28. scelta=4
  29. echo "Ciao $USER"
  30.  
  31. # Stampa del menu
  32. while [ $scelta -gt 3 ]
  33. do
  34. echo "Digitare il numero corrispondente all'azione che si vuole eseguire"
  35. echo "1: Indica il numero di riga contenente la parola \"tastiera\""
  36. echo "2: Sostiutisce tutte le occorrenze della parola \"tastiera\" con la parola \"keyboard\""
  37. echo "3: Conta il numero di linee di cui è composto un file"
  38. read scelta
  39. done
  40.  
  41. # Esecizione dei comandi a seconda della scelta
  42. case $scelta in
  43. # Cerca la parola tastiera e stampa i numeri di riga
  44. 1) grep -n "tastiera" $1 | cut -c 1 ;; # Impreciso se il numero e' >9 non va
  45. # Sostituisce le parole nel file e visualizza il file
  46. 2) sed -i 's/tastiera/keyboard/g' $1 ; cat $1 ;;
  47. # Aggiunge i numeri di riga e stampa solo l'ultimo
  48. 3) awk '{printf("%d", NR)}' $1 | tail -1 ; echo ;;
  49. esac
  50.  
  51. exit 0