This shows you the differences between two versions of the page.
uso-ac:laboratoare:laborator-09 [2016/12/10 23:00] giorgiana.vlasceanu [4. Prelucrarea informațiilor despre sistemul de fișiere (2p)] |
uso-ac:laboratoare:laborator-09 [2016/12/10 23:38] (current) giorgiana.vlasceanu [Laborator 9 - Stocarea si prelucrarea datelor] |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Laborator 9 - Stocarea si prelucrarea datelor ====== | + | ====== Laborator 09 - Stocarea si prelucrarea datelor ====== |
====== Suport laborator ====== | ====== Suport laborator ====== | ||
Line 480: | Line 480: | ||
student@uso:~/uso$ cat students.csv | wc -l | student@uso:~/uso$ cat students.csv | wc -l | ||
</code> | </code> | ||
- | ==== 2. Selecție, sortare date din baza de date (2p) ==== | + | ==== 2. Selecție, sortare date din baza de date (3p) ==== |
Bazei noastre de date îi lipsește o cheie primară. Aceasta se poate adăuga folosind comanda (asigurați-vă că folosiți baza de date ''uso'' când lucrați): | Bazei noastre de date îi lipsește o cheie primară. Aceasta se poate adăuga folosind comanda (asigurați-vă că folosiți baza de date ''uso'' când lucrați): | ||
Line 519: | Line 519: | ||
Puteți porni de la exemplele de SELECT oferite [[http://www.thegeekstuff.com/2013/09/mysql-select-command/|în această pagină]]. | Puteți porni de la exemplele de SELECT oferite [[http://www.thegeekstuff.com/2013/09/mysql-select-command/|în această pagină]]. | ||
- | ==== 3. Prelucrare Fisier JSON (2p) ==== | + | ==== 3. Prelucrare Fisier JSON (3p) ==== |
**JSON** (JavaScript Object Notation) este un format de stocare a datelor ca text human-readable sub formă de perechi cheie-valoare. Este adesea folosit în limbaje de programare precum **Javascript** pentru a agrega și transmite date între diverse componente. Un exemplu clasic este transmiterea datelor de la un sever la o pagină web. | **JSON** (JavaScript Object Notation) este un format de stocare a datelor ca text human-readable sub formă de perechi cheie-valoare. Este adesea folosit în limbaje de programare precum **Javascript** pentru a agrega și transmite date între diverse componente. Un exemplu clasic este transmiterea datelor de la un sever la o pagină web. | ||
Line 576: | Line 576: | ||
===== BONUS ===== | ===== BONUS ===== | ||
+ | |||
+ | ==== 0. Prelucrarea informațiilor despre sistemul de fișiere (2 karma WoUSO) ==== | ||
+ | | ||
+ | Este deseori util să știm să prelucrăm informațiile pe care le obținem de la utilitarele Linux. În acest sens dorim că datele să fie salvate într-un format bine precizat. | ||
+ | | ||
+ | Când dorim să aflat informații despre sistemul de fișiere, 2 utilitare des folosite sunt [[https://linux.die.net/man/1/find|find]] și [[https://linux.die.net/man/1/stat |stat]]. Cu **find** am mai lucrat în [[http://ocw.cs.pub.ro/courses/uso/laboratoare/laborator-06 |laboratorul 6]]. | ||
+ | | ||
+ | Sarcina voastră este să listați primele 5 fișiere obișnuite (regular files) din ierarhia /etc (adică din toate directoarele, subdirectoarele și subdirectoarele acestora etc.) sortate crescător în ordinea dimesiunii ocupate de fiecare fișier. Outputul trebuie salvat în fișierul '''uuuuge_files.txt'', fără a include erorile. | ||
+ | | ||
+ | <note undefined> | ||
+ | Folosiți find pentru a extrage fișierele. Apoi folosiți expandarea comenzii și stat pentru a afișa doar numele și dimensiunea fișierului. Adică o construcție de forma | ||
+ | <code> | ||
+ | stat -c ... $(find ...) | ||
+ | </code> | ||
+ | Apoi filtrați output-ul comenzii de mai sus cu ajutorul comenzii [[https://linux.die.net/man/1/sort|sort]] pentru a sorta **numeric** în funcție de dimensiunea fișierului. Adică o construcție de forma: | ||
+ | <code> | ||
+ | stat -c ... $(find ...) | sort ... | ||
+ | </code> | ||
+ | Apoi filtrați output-ul pentru a extrage doar primele 5 fișiere, în ordinea dimensiunii. Folosiți ''tail''. | ||
+ | </note> | ||
+ | | ||
+ | <solution -hidden> | ||
+ | <code bash> | ||
+ | stat -c "%s %n" $(find /etc -type f 2> /dev/null) | sort -n -k 1,1 | tail -n 5 | ||
+ | </code> | ||
+ | </solution> | ||
+ | |||
==== 1. Prelucrare HTML (2 karma WoUSO) ==== | ==== 1. Prelucrare HTML (2 karma WoUSO) ==== |