This shows you the differences between two versions of the page.
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. |