User Tools

Site Tools


advanced-unix:capitole:capitol-07

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
advanced-unix:capitole:capitol-07 [2016/05/12 12:46]
razvan [Mapare adrese IP și nume de stații]
advanced-unix:capitole:capitol-07 [2016/05/12 13:26] (current)
razvan [Parsare fișier de participanți]
Line 87: Line 87:
 </​code>​ </​code>​
  
-Realizați un script numit ''​convert-scale-images''​ care să convertească toate fișierele din directorul ''​media/''​ în fișiere noi care să se încheie cu ''​.2''​. Folosiți ''​for f in * ...''​ pentru parcurgerea fișierelor.+Realizați un script numit ''​convert-scale-images''​ care să convertească toate fișierele din directorul ''​media/''​ în fișiere noi care să se încheie cu ''​.2''​. Folosiți ''​%%for f in * ...%%''​ pentru parcurgerea fișierelor.
  
 Actualizați scriptul pentru a primi un parametru care indică scalarea conversiei. Adică dacă parametrul este ''​25%''​ atunci se scalează imaginea la ''​25%''​. Să fie afișat mesaj de Actualizați scriptul pentru a primi un parametru care indică scalarea conversiei. Adică dacă parametrul este ''​25%''​ atunci se scalează imaginea la ''​25%''​. Să fie afișat mesaj de
Line 99: Line 99:
 </​code>​ </​code>​
  
 +==== Parsare fișier de participanți ====
 +
 +Urmăriți conținutul fișierului de mai jos ''​participanti.txt''​. Creați un script denumit ''​get-participants.sh''​ care să selecteze participanți la cel puțin patru training-uri.
 +
 +<file participanti.txt>​
 +Nume C Java Pyhon Unix shell adv-shell
 +Andronescu Alin da nu da da nu da
 +Bogdanescu Bianca da nu da da da nu
 +Cirmaciu Calin nu nu da da da da
 +Dobrescu Diana da da da da da nu
 +Enescu Eugen nu da da da nu da
 +Florea Felicia nu da da da da nu
 +Ghita Gabriel nu nu nu da nu nu
 +Homescu Horia nu nu da da da nu
 +Ichim Ioana da nu da da nu nu
 +Janca Jeanina da nu da da da da
 +Lupu Lucian da nu da da nu nu
 +Marin Monica da nu da da nu nu
 +</​file>​
 +
 +Folosiți construcția ''​while read''​ pentru a parcurge liniile din fișier.
 +
 +<note tip>
 +Separatorul este TAB; va trebui să-l definiți cu o linie de forma:<​code bash>
 +IFS=$'​\t'​
 +</​code>​
 +</​note>​
 +
 +Recomandăm sa parcurgeți pașii de mai jos:
 +
 +Citiți cele 7 coloane din fișierul de intrare.
 +
 +Folosiți ''​if test''​ pentru a verifica cele 6 coloane pentru training-uri și incrementați o variabilă ''​count''​ pentru fiecare training la care a participat.
 +
 +Când faceți parcurgerea,​ ignorați prima linie (cea cu antetul).
 +
 +Afișați numele participanților pentru care valoarea variabilei ''​count''​ este mai mare decât ''​3''​. Afișați în paranteză, pe aceeași linie, și numărul de training-uri la care a participat, adică valoarea variabilei ''​count''​ (ca să fie validată afișarea).
 +
 +==== Calcul medie folosind awk ====
 +
 +Accesați directorul din arhiva de [[http://​titan.cs.pub.ro/​~razvan/​training/​compute-average.zip|aici]]. Urmăriți scriptul ''​remove-duplicates.awk''​ și sintaxa acestuia. Ce rol are acest script?
 +
 +Urmăriți fișierul ''​init.log''​. În majoritatea cazurilor apar de două ori (pe două linii) perechi de forma //​timestamp,​ IP address//.
 +
 +Creați un script denumite ''​replace-with-average.awk''​ în care înlocuiți două linii de forma de mai sus cu o singură linie a cărei a treia coloană să fie media valorilor inițiale. Inspirați-vă din scriptul ''​remove-duplicates.awk''​. Recomandăm să copiați conținutul în noul script și să-l editați.
advanced-unix/capitole/capitol-07.1463046372.txt.gz · Last modified: 2016/05/12 12:46 by razvan