Kako čitati Awk unos sa STDIN-a u Linuxu - 7. dio


U prethodnim dijelovima serije Awk alata, gledali smo čitanje unosa uglavnom iz datoteke(a), ali šta ako želite čitati unos sa STDINa.

U ovom dijelu 7 Awk serije, pogledat ćemo nekoliko primjera gdje možete filtrirati izlaz drugih naredbi umjesto čitanja unosa iz datoteke.

Počećemo s uslužnim programom dir koji radi slično komandi ls, u prvom primjeru ispod, koristimo izlaz naredbe dir -l kao ulaz za Awk za ispis korisničkog imena vlasnika, imena grupe i datoteka koje on /ona posjeduje u trenutnom direktoriju:

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

Pogledajte još jedan primjer u kojem koristimo awk izraze, ovdje želimo ispisati datoteke u vlasništvu root korisnika koristeći izraz za filtriranje nizova kao u naredbi awk ispod:

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

Gornja naredba uključuje (==) operator poređenja kako bi nam pomogao da filtriramo datoteke u trenutnom direktoriju koje su u vlasništvu root korisnika. Ovo se postiže korištenjem izraza $3== ”root ”.

Pogledajmo još jedan primjer gdje koristimo awk operator usporedbe za podudaranje s određenim nizom.

Ovdje smo koristili cat uslužni program za pregled sadržaja datoteke pod nazivom tecmint_deals.txt i želimo vidjeti samo ponude tipa Tech, tako da ćemo pokrenuti sljedeće naredbe:

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

U gornjem primjeru, koristili smo operator poređenja vrijednosti ~ /pattern/, ali postoje dvije naredbe za pokušaj da se otkrije nešto vrlo važno.

Kada pokrenete naredbu s uzorkom tech ništa se ne ispisuje jer ne postoji dogovor tog tipa, ali sa Tech dobijate ponude od upišite Tech.

Stoga uvijek budite oprezni kada koristite ovaj operator poređenja, on je osjetljiv na velika i mala slova kao što smo vidjeli gore.

Uvijek možete koristiti izlaz druge naredbe umjesto kao ulaz za awk umjesto čitanja unosa iz datoteke, ovo je vrlo jednostavno kao što smo pogledali u primjerima iznad.

Nadamo se da su primjeri bili dovoljno jasni da shvatite, ako imate bilo kakvih nedoumica, možete ih izraziti kroz odjeljak za komentare ispod i ne zaboravite provjeriti sljedeći dio serije gdje ćemo pogledati awk karakteristike kao što su varijable, numerički izrazi i operatori dodjele.