This is an old revision of the document!
Până acum am folosit câteva filtre de text precum tr
, cut
sau grep
, fiecare având câte un
scop binedefinit, însă ele nu vor putea face absolut orice operație am vrea noi să facem asupra unui text.
Pentru asta au fost inventate câteva filtre de text mai avansate precum sed
și awk
.
Înainte să începeți acest tutorial, navigați către calea /home/student/uso/labs/05-cli/support/get-a-life/tutorial-sed
.
În acest director avem fișierul songs.txt
cu următorul conținut:
student@uso:~/.../support/get-a-life/tutorial-sed$ cat songs.txt 1, Justin Timberlake, Title 545, Price $6.30 2, Taylor Swift, Title 723, Price $7.90 3, Mick Jagger, Title 610, Price $7.90 4, Lady Gaga, Title 118, Price $6.30 5, Johnny Cash, Title 482, Price $6.50 6, Elvis Presley, Title 335, Price $6.30 7, John Lennon, Title 271, Price $7.90
Vrem să înlocuim toate aparițiile prețului $6.30
cu $7.30
. Vom folosi sed
pentru a face acest
lucru.
student@uso:~/.../support/get-a-life/tutorial-sed$ sed 's/6.30/7.30/' songs.txt > songs2.txt student@uso:~/.../support/get-a-life/tutorial-sed$ cat songs2.txt 1, Justin Timberlake, Title 545, Price $7.30 2, Taylor Swift, Title 723, Price $7.90 3, Mick Jagger, Title 610, Price $7.90 4, Lady Gaga, Title 118, Price $7.30 5, Johnny Cash, Title 482, Price $6.50 6, Elvis Presley, Title 335, Price $7.30 7, John Lennon, Title 271, Price $7.90
Mai devreme am văzut că putem extrage numele tuturor utilizatorilo din sistem folosind tr
. Vrem să
facem asta folosind și filtrul awk
.
Ne amintim că informațiile despre toți utilizatorii din sistem se află în fișierul /etc/passwd
.
student@uso:~/.../support/get-a-life/tutorial-sed$ cat /etc/passwd root:x:0:0:root:/root:/bin/bash daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin bin:x:2:2:bin:/bin:/usr/sbin/nologin (...)
Pentru a extrage doar prima coloană, vom folosi următoarea comandă:
student@uso:~/.../support/get-a-life/tutorial-sed$ awk -F: '{print $1}' /etc/passwd root daemon bin (...)
sed
, awk
și multe altele aici.
source
)~/uso.git/labs/05-cli/support/get-a-life/ex2/
și rulați scriptul just_regular_updates_here.sh
. După rularea scriptului închideți terminalul curent și deschideți unul nou. Continuați să folosiți comenzile de bază (ls, cat). Observați ce se întâmplă și rezolvați problema.~/uso.git/labs/05-cli/support/get-a-life/ex3/
se află fișierul image.png
. Inspectați tipul fișierului. Scopul acestui exercițiu este să aflați un mesaj secret. (Hint: file
)~/uso.git/labs/05-cli/support/get-a-life/ex4/
se află numeroase fișiere. Să creeze o arhivă cu fișierele ce au o dimensiue mai mare de 10MB.firefox
doar dacă acesta nu există deja. Altfel, nu-l pornește, ci doar afișează informații depsre el. Configurați acest script să ruleze din cron
la fiecare 5 minute. (Hint: cron)man git
, for)