Cum să citiți intrarea Awk de la STDIN în Linux - Partea 7


În părțile anterioare ale seriei de instrumente Awk, ne-am uitat la citirea intrărilor mai ales dintr-un fișier(e), dar ce se întâmplă dacă doriți să citiți intrarea de la STDIN.

În această parte a 7-a a seriei Awk, vom analiza câteva exemple în care puteți filtra rezultatul altor comenzi în loc să citiți intrarea dintr-un fișier.

Vom începe cu utilitarul dir care funcționează similar cu comanda ls, în primul exemplu de mai jos, vom folosi ieșirea comenzii dir -l ca intrare pentru ca Awk să imprime numele de utilizator al proprietarului, numele grupului și fișierele pe care le are. /ea deține în directorul curent:

dir -l | awk '{print $3, $4, $9;}'

Aruncă o privire la un alt exemplu în care folosim expresii awk, aici, dorim să tipărim fișiere deținute de utilizatorul root folosind o expresie pentru a filtra șirurile ca în comanda awk de mai jos:

dir -l | awk '$3=="root" {print $1,$3,$4, $9;} '

Comanda de mai sus include operatorul de comparare (==) pentru a ne ajuta să filtram fișierele din directorul curent care sunt deținute de utilizatorul root. Acest lucru se realizează folosind expresia $3== „rădăcină”.

Să ne uităm la un alt exemplu în care folosim un operator de comparare awk pentru a potrivi un anumit șir.

Aici, am folosit utilitarul cat pentru a vizualiza conținutul unui fișier numit tecmint_deals.txt și dorim să vedem doar ofertele de tip Tech, așa că vom rula următoarele comenzi:

cat tecmint_deals.txt
cat tecmint_deals.txt | awk '$4 ~ /tech/{print}'
cat tecmint_deals.txt | awk '$4 ~ /Tech/{print}'

În exemplul de mai sus, am folosit operatorul de comparare a valorii ~ /pattern/, dar există două comenzi pentru a încerca să scoată în evidență ceva foarte important.

Când rulați comanda cu modelul tech, nu se imprimă nimic, deoarece nu există nicio ofertă de acest tip, dar cu Tech, obțineți oferte de tastați Tech.

Prin urmare, aveți grijă întotdeauna când utilizați acest operator de comparație, este sensibil la majuscule și minuscule, așa cum am văzut mai sus.

Puteți utiliza întotdeauna ieșirea unei alte comenzi ca intrare pentru awk în loc să citiți intrarea dintr-un fișier, acest lucru este foarte simplu așa cum ne-am uitat în exemplele de mai sus.

Sper că exemplele au fost suficient de clare pentru a le înțelege, dacă aveți nelămuriri, le puteți exprima prin secțiunea de comentarii de mai jos și nu uitați să verificați următoarea parte a seriei, unde vom analiza funcțiile awk cum ar fi variabile, expresiile numerice și operatorii de atribuire.