User Tools

Site Tools


school:uso:labs:shell_scripting_2

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
school:uso:labs:shell_scripting_2 [2009/08/09 18:32]
razvan
school:uso:labs:shell_scripting_2 [2009/08/09 19:36]
razvan
Line 18: Line 18:
 === variabile de mediu, source === === variabile de mediu, source ===
  
-Intrați în directorul ''lab11/ex01/''+Intrați în directorul ''lab12/ex01/''
  
 ==== Tutorial === ==== Tutorial ===
Line 68: Line 68:
 === find, globbing === === find, globbing ===
  
-* Intrați în directorul ''lab11/ex02/''.+* Intrați în directorul ''lab12/ex02/''.
  
 ==== Tutorial ==== ==== Tutorial ====
Line 93: Line 93:
 ==== Enunț ==== ==== Enunț ====
  
-* Folosiți ''find'' pentru a identifica fișierele cu drept de execuție care **nu** au extensia ''.sh'' aflate în **subdirectoarele** directorului ''lab11/ex02''.+* Folosiți ''find'' pentru a identifica fișierele cu drept de execuție care **nu** au extensia ''.sh'' aflate în **subdirectoarele** directorului ''lab12/ex02/''.
  
 ==== Pași ajutători ==== ==== Pași ajutători ====
Line 104: Line 104:
 === find, shell expansion === === find, shell expansion ===
  
-* Intrați în directorul ''lab11/ex03/''.+* Intrați în directorul ''lab12/ex03/''.
  
 ==== Tutorial ==== ==== Tutorial ====
Line 121: Line 121:
 ==== Enunț ==== ==== Enunț ====
  
-* Folosiți ''find'' și ''cp'' pentru a crea copii de lucru ale fișierelor de configurare de distribuție din ierarhia ''lab11/ex03/horde''. Fișierele de distribuție au extensia ''.dist'' (de exemplu ''conf.php.dist''); o copie de lucru este un fișier fără extensia ''.dist'' (de exemplu: ''conf.php'').+* Folosiți ''find'' și ''cp'' pentru a crea copii de lucru ale fișierelor de configurare de distribuție din ierarhia ''lab12/ex03/horde/''. Fișierele de distribuție au extensia ''.dist'' (de exemplu ''conf.php.dist''); o copie de lucru este un fișier fără extensia ''.dist'' (de exemplu: ''conf.php'').
  
 ==== Pași ajutători ==== ==== Pași ajutători ====
  
-* Folosiți ''find'' pentru a afișa fișierele cu extensia ''.dist'' din ierahia ''lab11/ex03/horde''. (Hint: ''-type'', ''-name'')+* Folosiți ''find'' pentru a afișa fișierele cu extensia ''.dist'' din ierahia ''lab12/ex03/horde/''. (Hint: ''-type'', ''-name'')
 * Folosiți ''for'', ''find'' și ''ls -l'' pentru a afișa informații complete despre fișierele de mai sus. * Folosiți ''for'', ''find'' și ''ls -l'' pentru a afișa informații complete despre fișierele de mai sus.
 * Inițializați variabila ''MY_FILE'' la valoarea ''conf.php.dist''. Folosiți ''echo'' și construcția ''${parameter%word}'' pentru a afișa valoarea variabilei ''MY_FILE'' fără extensia ''.dist''. * Inițializați variabila ''MY_FILE'' la valoarea ''conf.php.dist''. Folosiți ''echo'' și construcția ''${parameter%word}'' pentru a afișa valoarea variabilei ''MY_FILE'' fără extensia ''.dist''.
Line 132: Line 132:
 === read === === read ===
  
-* Intrați în directorul ''lab11/ex04/''.+* Intrați în directorul ''lab12/ex04/''.
  
 ==== Tutorial ==== ==== Tutorial ====
Line 171: Line 171:
 === grep, here document === === grep, here document ===
  
-* Intrați în directorul ''lab11/ex05/''.+* Intrați în directorul ''lab12/ex05/''.
  
 ==== Tutorial ==== ==== Tutorial ====
Line 213: Line 213:
 === variabile, source, sed === === variabile, source, sed ===
  
-* Intrați în directorul ''lab11/ex06/''.+* Intrați în directorul ''lab12/ex06/''.
  
 ==== Tutorial === ==== Tutorial ===
Line 251: Line 251:
 === grep, sed === === grep, sed ===
  
-* Intrați în directorul ''lab11/ex07/''.+* Intrați în directorul ''lab12/ex07/''.
  
 ==== Tutorial ==== ==== Tutorial ====
Line 289: Line 289:
 === grep, expresii regulate === === grep, expresii regulate ===
  
-* Intrați în directorul ''lab11/ex08/''.+* Intrați în directorul ''lab12/ex08/''.
  
 ==== Tutorial ==== ==== Tutorial ====
Line 318: Line 318:
 * Folosiți ''grep'' pentru a selecta liniile ce conțin cuvântul ''gmail.com''. (Hint: ''\<'' și ''\>'') * Folosiți ''grep'' pentru a selecta liniile ce conțin cuvântul ''gmail.com''. (Hint: ''\<'' și ''\>'')
 * Folosiți ''grep'' pentru a selecta liniile ce conțin cuvântul ''gmail.com'' în destinație. (Hint: dacă folosiți ''+'' acesta trebuie citat cu ''\'' pentru a avea rol în expresia regulată - unul sau mai multe caractere) * Folosiți ''grep'' pentru a selecta liniile ce conțin cuvântul ''gmail.com'' în destinație. (Hint: dacă folosiți ''+'' acesta trebuie citat cu ''\'' pentru a avea rol în expresia regulată - unul sau mai multe caractere)
-* Folosiți ''grep'' pentru a selecta liniile ce conțin șirul-cuvânt ''nume.prenume@gmail.com'' în destinație. (**Atenție: intrarea ce conține ''j.r.r.tolkien@gmail.com'' este invalidă)+* Folosiți ''grep'' pentru a selecta liniile ce conțin șirul-cuvânt ''nume.prenume@gmail.com'' în destinație. (**Atenție**: intrarea ce conține ''j.r.r.tolkien@gmail.com'' este invalidă)
  
 === grep, awk, sort, uniq === === grep, awk, sort, uniq ===
  
 * **Dificultate sporită** * **Dificultate sporită**
-* Intrați în directorul ''lab11/ex09/''.+* Intrați în directorul ''lab12/ex09/''.
  
 ==== Tutorial ==== ==== Tutorial ====
Line 330: Line 330:
  
 {{{ {{{
-cat lista.txt | awk -F '[ \t]+' "{ print "prenume:", $1, "nume:", $2; }" +cat lista.txt | awk -F '[ \t]+' '{ print "nume:", $1, "prenume", $2; }' 
-cat /etc/passwd | awk -F ':' "{ print "nume: $1", "home:", $6; }"+cat /etc/passwd | awk -F ':' '{ print "nume:", $1, "home:", $6; }'
 }}} }}}
  
Line 343: Line 343:
 ==== Enunț ==== ==== Enunț ====
  
-* Fișierul ''mail.txt'' conține mesaje trimise de un utilizator. Creați un script ''dest_sort.sh'' care sortează mesajele trimise de un utilizator după destinatari; se vor afișa adresa de e-mail a destinatarului și numărul de mesaje transmise de acesta.+* Fișierul ''sent_mail.txt'' conține mesaje trimise de un utilizator. Creați un script ''dest_sort.sh'' care sortează mesajele trimise de un utilizator după destinatari; se vor afișa adresa de e-mail a destinatarului și numărul de mesaje transmise de acesta.
  
 ==== Pași ajutători ==== ==== Pași ajutători ====
  
-* Creați scriptul ''dest_sort.sh'' și folosiți ''grep'' pentru a extrage din fișierul ''mail.txt'' liniile care specifică destinatarul (liniile care încep cu ''To:''). +* Creați scriptul ''dest_sort.sh'' și folosiți ''grep'' pentru a extrage din fișierul ''sent_mail.txt'' liniile care specifică destinatarul (liniile care încep cu ''To:''). 
-* Folosiți înlănțuirea comenzilor (''|'') și ''awk'' pentru a extrage **doar** adresa de e-mail a destinatarului.+* Folosiți înlănțuirea comenzilor (''|'') și ''awk'' pentru a extrage **doar** adresa de e-mail a primului destinatar. (Hint: folosiți ''<'' și ''>'' ca separatori; vor exista excepții dar sunt tolerabile) 
 +* Folosiți înlănțuirea comenzilor și ''grep'' pentru a elimina liniile albe (liniile care conțin doar spații sau caractere TAB sau care nu conțin nimic).
 * Folosiți înlănțuirea comenzilor (''|'') și ''sort'' pentru a sorta adresele de e-mail ale destinatarilor. * Folosiți înlănțuirea comenzilor (''|'') și ''sort'' pentru a sorta adresele de e-mail ale destinatarilor.
 * Folosiți înlănțuirea comenzilor (''|'') și ''uniq'' pentru a "uniciza" adresele de e-mail ale destinatarilor cu afișarea numărului de apariții ale acestora. (Hint: ''-c'') * Folosiți înlănțuirea comenzilor (''|'') și ''uniq'' pentru a "uniciza" adresele de e-mail ale destinatarilor cu afișarea numărului de apariții ale acestora. (Hint: ''-c'')
Line 356: Line 357:
  
 * **Dificultate sporită** * **Dificultate sporită**
-* Intrați în directorul ''lab11/ex10/''.+* Intrați în directorul ''lab12/ex10/''.
  
 ==== Enunț ==== ==== Enunț ====
  
-* Fișierul ''mail.txt'' conține mesaje trimise de un utilizator. Creați un script ''dest_sort.sh'' care script care sortează mesajele trimise de un utilizator în funcție de data la care au fost transmise; se vor afișa data de transmitere a mesajului și numărul de mesaje transmise la acea dată.+* Fișierul ''sent_mail.txt'' conține mesaje trimise de un utilizator. Creați un script ''dest_sort.sh'' care script care sortează mesajele trimise de un utilizator în funcție de data la care au fost transmise; se vor afișa data de transmitere a mesajului și numărul de mesaje transmise la acea dată.
  
 ==== Pași ajutători ==== ==== Pași ajutători ====
  
-* Creați scriptul ''date_sort.sh'' și folosiți ''grep'' pentru a extrage din fișierul ''mail.txt'' liniile care specifică data (liniile care încep cu ''Date:''). +* Creați scriptul ''date_sort.sh'' și folosiți ''grep'' pentru a extrage din fișierul ''sent_mail.txt'' liniile care specifică data (liniile care încep cu ''Date:''). 
-* Folosiți înlănțuirea comenzilor (''|'') și ''awk'' pentru a extrage **doar** data de transmitere a mesajului.+* Folosiți înlănțuirea comenzilor (''|'') și ''awk'' pentru a extrage **doar** data de transmitere a mesajului. (Hint: se presupune data în formatul ''Day, DD Mon YYYY'' - adică 4 cuvinte separate prin spațiu)
 * Folosiți înlănțuirea comenzilor (''|'') și ''sort'' pentru a sorta datele mesajelor. * Folosiți înlănțuirea comenzilor (''|'') și ''sort'' pentru a sorta datele mesajelor.
 * Folosiți înlănțuirea comenzilor (''|'') și ''uniq'' pentru a "uniciza" datele mesajelor cu afișarea numărului de apariții ale acestora (Hint: ''-c'') * Folosiți înlănțuirea comenzilor (''|'') și ''uniq'' pentru a "uniciza" datele mesajelor cu afișarea numărului de apariții ale acestora (Hint: ''-c'')
school/uso/labs/shell_scripting_2.txt · Last modified: 2020/07/20 09:16 (external edit)