Dok otkrivamo odjeljak Awk značajke, u ovom dijelu serije proći ćemo kroz koncept ugrađenih varijabli u Awku. Postoje dvije vrste varijabli koje možete koristiti u Awku, to su; korisnik definiran varijabli, koje smo obradili 8. dio i ugrađen varijable.
Ugrađeno varijable imaju vrijednosti već definirane u Awk, ali također možemo pažljivo promijeniti te vrijednosti, ugrađene varijable uključuju:
NAZIV DATOTEKE
: naziv trenutne ulazne datoteke (ne mijenjajte naziv varijable)FR
: broj trenutnog ulaznog retka (to je ulazni redak 1, 2, 3... tako dalje, ne mijenjajte naziv varijable)NF
: broj polja u trenutnom retku unosa (ne mijenjajte naziv varijable)OFS
: separator izlaznog poljaFS
: separator ulaznog poljaORS
: separator izlaznih zapisaRS
: separator ulaznih zapisaNastavimo s ilustracijom korištenja gore navedenih ugrađenih varijabli Awk:
Da biste pročitali naziv datoteke trenutne ulazne datoteke, možete koristiti NAZIV DATOTEKE
ugrađena varijabla na sljedeći način:
$ awk '{print FILENAME}' ~/domains.txt
Shvatit ćete da se naziv datoteke ispisuje za svaki redak unosa, što je zadano ponašanje Awk kada koristite NAZIV DATOTEKE
ugrađena varijabla.
Korištenje NR
za brojanje broja redaka (zapisa) u ulaznoj datoteci, zapamtite da se također broje i prazni retci, što ćemo vidjeti u donjem primjeru.
Kad pregledamo datoteku domains.txt koristeći mačka naredba, sadrži 14 redovi s tekstom i prazni 2 linije:
$ cat ~/domains.txt.
$ awk 'END {print "Broj zapisa u datoteci je:", NR}' ~/domains.txt
Za brojanje broja polja u zapisu ili retku koristimo ugrađenu varijablu NR na sljedeći način:
$ cat ~/names.txt.
$ awk '{print "Record:", NR, "has", NF, "fields"; } '~/names.txt.
Zatim možete odrediti i separator ulaznog polja pomoću FS
ugrađena varijabla, definira kako Awk dijeli ulazne retke u polja.
Zadana vrijednost za FS
je prostor i tab, ali možemo promijeniti vrijednost FS
bilo kojem znaku koji će uputiti Awka da u skladu s tim podijeli ulazne retke.
Postoje dvije metode za to:
Razmotrite datoteku /etc/passwd na Linux sustavu polja u ovoj datoteci podijeljena su pomoću :
znak, pa ga možemo navesti kao novi separator ulaznih polja kada želimo filtrirati određena polja kao u sljedećim primjerima:
Možemo koristiti -F
opciju kako slijedi:
$ awk -F ':' '{ispišite $ 1, $ 4;}' /etc /passwd.
Izborno, možemo iskoristiti i FS
ugrađena varijabla kako slijedi:
$ awk 'BEGIN {FS = “:”; } {print $ 1, $ 4; } ' /etc /passwd.
Da biste naveli separator izlaznog polja, upotrijebite OFS
ugrađena varijabla, definira kako će se izlazna polja odvojiti pomoću znaka koji koristimo kao u donjem primjeru:
$ awk -F ':' 'POČNITE {OFS = "==>";} {ispišite $ 1, $ 4;}' /etc /passwd.
U ovom 10. dio, istražili smo ideju korištenja Awk ugrađenih varijabli koje dolaze s unaprijed definiranim vrijednostima. Ali također možemo promijeniti te vrijednosti, međutim, ne preporučuje se to činiti ako ne znate što radite, uz odgovarajuće razumijevanje.
Nakon toga ćemo nastaviti obrađivati kako možemo koristiti varijable ljuske u naredbenim operacijama Awk, stoga ostanite povezani s Tecmint.