Differences

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

Link to this comparison view

uso:laboratoare:laborator-08:basics [2021/11/14 11:47]
andreea.nica1602 [Expresii regulate]
uso:laboratoare:laborator-08:basics [2021/11/26 03:34] (current)
mihai_daniel.soare [tr & sed]
Line 91: Line 91:
 </​code>​ </​code>​
  
-Dacă vrem în schimb să selectăm studenții al căror prenume începe cu litera ''​F''​ trebuie să privim lucrurile altfel. Urmărind textul putem observa că prenumele sunt precedate fie de caracterul spațiu (//blank//) fie de caracterul minus (''​-''​). Pentru început vom folosi expresia regulată ''​%%[ -]F%%''​ care face match pe caracterul spațiu sau minus urmat de caracterul ''​F''​ majusculă. Comanda aferentă este:+Dacă vremîn schimbsă selectăm studenții al căror prenume începe cu litera ''​F''​ trebuie să privim lucrurile altfel. Urmărind textul putem observa că prenumele sunt precedate fie de caracterul spațiu (//blank//) fie de caracterul minus (''​-''​). Pentru început vom folosi expresia regulată ''​%%[ -]F%%''​ care face match pe caracterul spațiu sau minus urmat de caracterul ''​F''​ majusculă. Comanda aferentă este:
 <code bash> <code bash>
 student@uso:​~/​uso-lab/​labs/​06-scripting/​support/​00-basics$ grep '[ -]F' students.txt ​ student@uso:​~/​uso-lab/​labs/​06-scripting/​support/​00-basics$ grep '[ -]F' students.txt ​
Line 133: Line 133:
  
 Utilitarul **tr** permite translatarea,​ ștergerea și manipularea caracterelor primite la intrare.  ​ Utilitarul **tr** permite translatarea,​ ștergerea și manipularea caracterelor primite la intrare.  ​
-După cum am văzut în [[:​uso:​laboratoare:​laborator-05|laboratorul precedent]], **sed** este un **stream editor** ce poate efectua transformări la nivel de string asupra unui text primit la intrare. În plus, sed poate primi expresii regulate ca argument de căutare. ​+Practic, **sed** este un **stream editor** ce poate efectua transformări la nivel de string asupra unui text primit la intrare. În plus, sed poate primi expresii regulate ca argument de căutare. ​
   ​   ​
 <​note> ​ <​note> ​
Line 247: Line 247:
 </​code>​ </​code>​
  
-În cazul în care există linii duplicate, putem folosi utilitarul **uniq** în conjuncție cu **sort** pentru a le elimina. În acest scop adăugăm o linie duplicata în ''​students.csv'': ​+În cazul în care există linii duplicate, putem folosi utilitarul **uniq** în conjuncție cu **sort** pentru a le elimina. În acest scopadăugăm o linie duplicata în ''​students.csv'': ​
 <​file>​ <​file>​
 VLĂDUȚU I. Liviu-Alexandru,​311CC,​6,​3.5,​5.22 ​                                                                                                                                                       VLĂDUȚU I. Liviu-Alexandru,​311CC,​6,​3.5,​5.22 ​                                                                                                                                                      
Line 364: Line 364:
 </​spoiler>​ </​spoiler>​
  
-Pașii de mai sus puteau fi realizați și cu ajutorul comenzii ''​cut''​. Darîn cazul parsării folosind construcția ''​while read''​ avem două avantaje:+Pașii de mai sus puteau fi realizați și cu ajutorul comenzii ''​cut''​. Dar în cazul parsării folosind construcția ''​while read''​ avem două avantaje:
   * putem afișa coloanele în ce ordine dorim; ''​cut''​ permitea afișarea de coloane doar în ordinea din fișierul de intrare;   * putem afișa coloanele în ce ordine dorim; ''​cut''​ permitea afișarea de coloane doar în ordinea din fișierul de intrare;
   * putem prelucra în continuare, în cadrul construcției ''​while read''​ informația parsată. Spre exemplu, afișarea poate avea forma %%"​Studentul ... face parte din grupa ..."​%%.   * putem prelucra în continuare, în cadrul construcției ''​while read''​ informația parsată. Spre exemplu, afișarea poate avea forma %%"​Studentul ... face parte din grupa ..."​%%.
uso/laboratoare/laborator-08/basics.1636883247.txt.gz · Last modified: 2021/11/14 11:47 by andreea.nica1602
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0