User Tools

Site Tools


unixmix:capitole:capitol-06
Differences

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

Link to this comparison view

unixmix:capitole:capitol-06 [2014/07/02 07:21]
tpopeea
unixmix:capitole:capitol-06 [2014/09/11 12:25] (current)
razvan [Exerciții]
Line 1: Line 1:
 = Filtre de text = = Filtre de text =
 +
 +[[https://docs.google.com/presentation/d/1btwpQIcgu5F9Upw0EKD7ufhzgLycuacE3q07N-_f_6w/pub?start=false&loop=false&delayms=3000|Slide-uri de prezentare]]
  
 == Tutorial == == Tutorial ==
Line 22: Line 24:
 </code> </code>
  
-* Copiați textul de mai sus și salvați-l într-un fișier numit ''passwd'' aflat în directorul home al utilizatorului ''thales''.+* Copiați textul de mai sus și salvați-l într-un fișier numit ''passwd'' aflat în directorul home al utilizatorului ''student''.
 ** Fișierul are o structură asemănătoare ''/etc/passwd'' (informații despre utilizatorii sistemului) ** Fișierul are o structură asemănătoare ''/etc/passwd'' (informații despre utilizatorii sistemului)
 *** nume utilizator *** nume utilizator
Line 37: Line 39:
 ** Folosiți o metodă care numără inclusiv linile albe. ** Folosiți o metodă care numără inclusiv linile albe.
 ** Folosiți o altă metodă care nu numerotează linile albe. ** Folosiți o altă metodă care nu numerotează linile albe.
-* Rulați comanda ''tac passwd''+* Rulați comanda<code> 
 +tac passwd 
 +</code>
 ** Ce observați? ** Ce observați?
-* Rulați comanda ''nl passwd''.+* Rulați comanda<code> 
 +nl passwd 
 +</code>
 ** Cu ce este echivalentă? (''cat'' + ce parametru?) ** Cu ce este echivalentă? (''cat'' + ce parametru?)
  
 === head, tail === === head, tail ===
  
-* Rulați comanda ''head passwd''.+* Rulați comanda<code> 
 +head passwd 
 +</code>
 ** Ce afișează? ** Ce afișează?
-* Rulați comanda ''cat passwd | head''.+* Rulați comanda<code> 
 +cat passwd | head 
 +</code>
 ** Ce afișează? ** Ce afișează?
-* Rulați comanda ''cat -n passwd | head''.+* Rulați comanda<code> 
 +cat -n passwd | head 
 +</code>
 ** Ce afișează? ** Ce afișează?
 Vom folosi combinația ''cat -n'' și operatorul ''|'' (pipe) pentru a simplifica înțelegerea output-ului. Vom folosi combinația ''cat -n'' și operatorul ''|'' (pipe) pentru a simplifica înțelegerea output-ului.
-* Rulați comanda ''cat -n passwd | head -n 4''.+* Rulați comanda<code> 
 +cat -n passwd | head -n 4 
 +</code>
 ** Ce afișează? ** Ce afișează?
-* Rulați comanda ''cat -n passwd | head -n +4''.+* Rulați comanda<code> 
 +cat -n passwd | head -n +4 
 +</code>
 ** Ce afișează? ** Ce afișează?
-* Rulați comanda ''cat -n passwd | head -n -4''.+* Rulați comanda<code> 
 +cat -n passwd | head -n -4 
 +</code>
 ** Ce afișează? ** Ce afișează?
-* Rulați comanda ''cat -n passwd | tail''.+* Rulați comanda<code> 
 +cat -n passwd | tail 
 +</code>
 ** Ce afișează? ** Ce afișează?
-* Rulați comanda ''cat -n passwd | tail -n 4''.+* Rulați comanda<code> 
 +cat -n passwd | tail -n 4 
 +</code>
 ** Ce afișează? ** Ce afișează?
-* Rulați comanda ''cat -n passwd | tail -n -4''.+* Rulați comanda<code> 
 +cat -n passwd | tail -n -4 
 +</code>
 ** Ce afișează? ** Ce afișează?
-* Rulați comanda ''cat -n passwd | tail -n +4''.+* Rulați comanda<code> 
 +cat -n passwd | tail -n +4 
 +</code>
 ** Ce afișează? ** Ce afișează?
-* Rulați comanda ''cat -n passwd | head -n 6 | tail -n 2''.+* Rulați comanda<code> 
 +cat -n passwd | head -n 6 | tail -n 2 
 +</code>
 ** Încercați să înțelegeți output-ul. ** Încercați să înțelegeți output-ul.
  
 === sort, uniq === === sort, uniq ===
  
-* Rulați comanda ''cat passwd | sort''.+* Rulați comanda<code> 
 +cat passwd | sort 
 +</code>
 ** Ce observați? ** Ce observați?
 * Căutați în ''man'' un parametru pentru ''sort'' astfel încât sortarea să se facă în ordine inversă. * Căutați în ''man'' un parametru pentru ''sort'' astfel încât sortarea să se facă în ordine inversă.
-* Rulați comanda ''cat passwd | uniq''.+* Rulați comanda<code> 
 +cat passwd | uniq 
 +</code>
 ** Redirectați output-ul într-un fișier numit ''1st''. ** Redirectați output-ul într-un fișier numit ''1st''.
-* Rulați comanda ''cat passwd | sort | uniq''.+* Rulați comanda<code> 
 +cat passwd | sort | uniq 
 +</code>
 ** Redirectați output-ul într-un fișier numit ''2nd''. ** Redirectați output-ul într-un fișier numit ''2nd''.
 Ce este diferit între 1st și 2nd? Ce este diferit între 1st și 2nd?
Line 83: Line 117:
 === cut, tr === === cut, tr ===
  
-* Rulați comanda ''cat passwd''. +* Rulați comanda<code> 
-* Rulați comanda ''cat passwd | cut -d':' -f1''.+cat passwd 
 +</code> 
 +* Rulați comanda<code> 
 +cat passwd | cut -d':' -f1 
 +</code>
 ** Ce observați? ** Ce observați?
-* Rulați comanda ''cat passwd | cut -d':' -f5''.+* Rulați comanda<code> 
 +cat passwd | cut -d':' -f5 
 +</code>
 ** Ce observați? ** Ce observați?
-* Rulați comanda ''cat passwd | cut -d':' -f6''.+* Rulați comanda<code> 
 +cat passwd | cut -d':' -f6 
 +</code>
 ** Ce observați? ** Ce observați?
-* Rulați comanda ''cat passwd | cut -d':' -f1,5,6''.+* Rulați comanda<code> 
 +cat passwd | cut -d':' -f1,5,6 
 +</code>
 ** Ce observați? ** Ce observați?
-* Rulați comanda ''cat passwd''. +* Rulați comanda<code> 
-* Rulați comanda ''cat passwd | tr x X''+cat passwd 
 +</code> 
 +* Rulați comanda<code> 
 +cat passwd | tr 'x' 'X' 
 +</code>
 ** Ce s-a întâmplat? ** Ce s-a întâmplat?
-* Rulați comanda ''cat passwd | tr ieu IEU''.+* Rulați comanda<code> 
 +cat passwd | tr 'ieu' 'IEU' 
 +</code>
 ** Ce observați? ** Ce observați?
-* Rulați comanda ''cat passwd | tr ieu IE''.+* Rulați comanda<code> 
 +cat passwd | tr 'ieu' 'IE' 
 +<?code>
 ** Ce observați? ** Ce observați?
-* Rulați comanda ''cat passwd | tr ieu I''.+* Rulați comanda<code> 
 +cat passwd | tr 'ieu' 'I' 
 +</code>
 ** Ce observați? ** Ce observați?
-* Rulați comanda ''cat passwd | tr -d x''.+* Rulați comanda<code> 
 +cat passwd | tr -d 'x' 
 +</code>
 ** Ce observați? ** Ce observați?
-* Rulați comanda ''cat passwd | tr -d home''.+* Rulați comanda<code> 
 +cat passwd | tr -d 'home' 
 +</code>
 ** Ce observați? ** Ce observați?
-* Rulați comanda ''cat passwd | tr -s o''.+* Rulați comanda<code> 
 +cat passwd | tr -s o 
 +</code>
 ** Ce observați? (ceva mai observabil pe prima linie prima linie) ** Ce observați? (ceva mai observabil pe prima linie prima linie)
 +
 === grep === === grep ===
  
-* Rulați comanda ''cat passwd | grep var''.+* Rulați comanda<code> 
 +cat passwd | grep 'var' 
 +</code>
 ** Ce observați? ** Ce observați?
-* Rulați comanda ''cat passwd | grep -v var''.+* Rulați comanda<code> 
 +cat passwd | grep -v 'var' 
 +</code>
 ** Ce observați? ** Ce observați?
-* Rulați comanda ''cat passwd | grep ^r''.+* Rulați comanda<code> 
 +cat passwd | grep '^r' 
 +</code>
 ** Ce observați? ** Ce observați?
-* Rulați comanda ''cat passwd | grep h$''.+* Rulați comanda<code> 
 +cat passwd | grep 'h$' 
 +</code>
 ** Ce observați? ** Ce observați?
-* Rulați comanda ''cat passwd | grep ^i.*h$''.+* Rulați comanda<code> 
 +cat passwd | grep '^i.*h$' 
 +</code>
 ** Ce observați? ** Ce observați?
-* Rulați comanda ''cat passwd | grep ^[r,i]''.+* Rulați comanda<code> 
 +cat passwd | grep ^[r,i] 
 +</code>
 ** Ce observați? ** Ce observați?
  
Line 126: Line 199:
 **sed** este un **stream editor**. Cel mai bine cunoscut pentru funcția de search and replace. **sed** este un **stream editor**. Cel mai bine cunoscut pentru funcția de search and replace.
  
-<code>  +<code> 
-sed "s/foo/bar/gin_file > out_file+sed 's/foo/bar/gin_file > out_file
 </code> </code>
  
Line 133: Line 206:
  
 <code>  <code> 
-sed -i "s/foo/bar/gin_file+sed -i 's/foo/bar/gin_file
 </code> </code>
  
Line 139: Line 212:
  
 <code> <code>
-sed -i "s/\^first/First/gfile +sed -i 's/\^first/First/gfile 
-sed -i "s/[0-9]/X/gfile+sed -i 's/[0-9]/X/gfile
 </code> </code>
  
Line 148: Line 221:
 <code> <code>
 # Pentru fiecare linie din text, dacă este între linia 3 și 4, printeaza-o; ignoră restul liniilor # Pentru fiecare linie din text, dacă este între linia 3 și 4, printeaza-o; ignoră restul liniilor
-sed `3,4p’ foo.txt+sed -'3,4pfoo.txt
 # Pentru fiecare linie din text, dacă este ultima linie, printeaza-o; ignoră restul liniilor # Pentru fiecare linie din text, dacă este ultima linie, printeaza-o; ignoră restul liniilor
-sed `$p’ foo.txt +sed -'$pfoo.txt
 </code> </code>
  
Line 168: Line 240:
  
 <code> <code>
-awk f awk.script foo.file+awk -f awk.script foo.file
 </code> </code>
  
Line 207: Line 279:
  
 <code> <code>
-İnput +İnput
 1 clothing    3141 1 clothing    3141
 1 computers   9161 1 computers   9161
Line 219: Line 291:
 <code> <code>
  
-awk if ($2 =="computers){print}'sales.dat+awk 'if ($2 =="computers"){print}' sales.dat
  
 </code> </code>
Line 226: Line 298:
 Output Output
 1 computers 9161 1 computers 9161
-2 computers 2321 +2 computers 2321
 </code> </code>
  
Line 233: Line 305:
 # Realizați un oneliner care parsează output-ul comenzii ''date'' și afișează un mesaj de forma ''Este ora X și Y minute''. # Realizați un oneliner care parsează output-ul comenzii ''date'' și afișează un mesaj de forma ''Este ora X și Y minute''.
 # Realizați un oneliner care afișează username-ul utilizatorilor reali din sistem. Considerăm un utilizator real, un utilizator al cărui director ''home'' are forma ''/home/USER''. (hint: ''/etc/passwd'') # Realizați un oneliner care afișează username-ul utilizatorilor reali din sistem. Considerăm un utilizator real, un utilizator al cărui director ''home'' are forma ''/home/USER''. (hint: ''/etc/passwd'')
-# Realizați un oneliner care afișează numele fișierelor din ''/usr/include'' care includ antentul ''features.h''. (hint: grep, cut)+# Realizați un oneliner care afișează numele fișierelor din ''/usr/include'' care includ antentul ''features.h''. 
 +#* **Hint**''grep''''cut'' 
unixmix/capitole/capitol-06.1404274874.txt.gz · Last modified: 2014/07/02 07:21 by tpopeea