razvanth21

T22

Nov 30th, 2019
252
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 0.99 KB | None | 0 0
  1. # Sa se scrie un shell script care primeste un fisier file si un prefix p in linia de comanda. Daca nu exista 2 argumente se afiseaza mesaj de utilizare.
  2. # Se citesc siruri de caractere de la tastatura (stdin) pana la intalnirea sirului "End". Se afiseaza acele siruri din lisa care au prefixul p pe masura ce sunt introduse.
  3. # Se calculeaza si se afseaza: numarul de siruri cu prefixul p si suma lungimilor tuturor sirurilor.
  4. # Daca file reprezinta numele unui fisier obisnuit, se scrie in file suma numerelor. Daca nu, se afiseaza mesaj de eroare: file is not a regular file.
  5.  
  6. #! /bin/bash
  7.  
  8. if [ $# -ne 2 ]
  9. then
  10.     echo "Sintaxa: $0 <fisier> <prefix>"
  11.     exit -1
  12. fi
  13.  
  14. c=0
  15. s=0
  16.  
  17. while read -r str
  18. do
  19.     if [ "$str" = "End" ]
  20.     then
  21.         break
  22.     fi
  23.  
  24.     if [[ "$str" =~ $2 ]]
  25.     then
  26.         echo "$str"
  27.         c=$(($c + 1))
  28.     fi
  29.  
  30.     s=$(($s + ${#str}))
  31. done < /dev/stdin
  32.  
  33. if [ -f $1 ]
  34. then
  35.     echo "Nr. care incep cu prefixul dat: $c" > $1
  36.     echo "Suma cifrelor: $s" >> $1
  37. else
  38.     echo "$1 is not a regular file."
  39. fi
Add Comment
Please, Sign In to add comment