Advertisement
razvanth21

Untitled

Dec 3rd, 2019
321
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 1.37 KB | None | 0 0
  1. # Sa se scrie un shell script care primeste in linia de comanda unul sau mai multe nume de cale. Daca nu exista cel putin un argument se afiseaza mesaj de utilizare si se incheie executia
  2. # Pentru fiecare nume de cale care nu este director, se afiseaza cate un mesaj corespunzator si se continua executia.
  3. # Se parcurge nerecursiv fiecare director dat si, pt fiecare fisier obisnuit intalnit se numara liniile cu propozitii. O propozitie incepe cu majuscula si contine doar litere sau caracterul spatiu. Rezultatele se afiseaza sub forma: file: n lines.
  4. # Se afiseaza nr de legaturi simbolice din fiecare director dat, de aceasta data fara a parcurge directorul, sub forma: dir: n links.
  5.  
  6. #! /bin/sh
  7.  
  8. if [ $# -lt 1 ]
  9. then
  10.     echo "Sintaxa: $0 <cale1> <cale2> ..."
  11.     exit -1
  12. fi
  13.  
  14. for i in "$@"
  15. do
  16.     if [ ! -d $i ]
  17.     then
  18.         echo "$i nu este director"
  19.     else
  20.         for e in "$i"/*
  21.         do
  22.             if [ -f $e ]
  23.             then
  24.                 c=0
  25.                 while read line
  26.                 do
  27.                     if [ "$line" =~ '^[A-Z][a-zA-Z ]*' ]
  28.                     then
  29.                         c=$(($c + 1))
  30.                     fi
  31.                 done < $e
  32.                
  33.                 echo "$e: $c lines"
  34.             fi
  35.         done
  36.        
  37.         links=`ls -l | grep '^l[-r]' | wc -l`
  38.         echo "$i: $links links"
  39.     fi
  40. done
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement