Awk

Kako koristiti varijablu u naredbi awk

Kako koristiti varijablu u naredbi awk
Varijable se koriste za pohranu bilo koje privremene vrijednosti u bilo kojem programskom jeziku.  Definiranje varijable u naredbi awk slično je skriptnom jeziku bash i djeluje poput basha kada se ljuska varijabla koristi s jednim navodnikom i dvostrukim navodnikom. Naredba Awk ima mnogo ugrađenih varijabli za razne svrhe. Kako se korisnički definirane, ugrađene varijable i varijable ljuske mogu koristiti u naredbi awk prikazano je u ovom vodiču pomoću različitih primjera.

Eprimjer -1: Definiranje i ispis varijable

naredba 'awk' koristi opciju '-v' za definiranje varijable. U ovom primjeru, myvar varijabla je definirana u naredbi 'awk' za pohranu vrijednosti, “AWK varijabla” koji se kasnije tiska. Pokrenite sljedeću naredbu s terminala da provjerite izlaz.

$ echo | awk -v myvar = 'AWK varijabla' 'ispis myvar'

Izlaz:

Primjer - 2: Korištenje ljuske varijable u awk s jednim navodnikom i dvostrukim navodnikom

Primjer pokazuje kako se varijabla ljuske može koristiti naredbom 'awk'. Ovdje, varijabla ljuske, myvar se deklarira s vrijednošću, "Linux savjet" u prvoj naredbi. Simbol '$' koristi se s imenom varijable ljuske za čitanje vrijednosti. Druga naredba čita varijablu, $ myval s jednim navodnikom ('), a treća naredba čita varijablu $ myvar s dvostrukim navodnikom (“) u izjavi' awk '.

$ myvar = "Linux savjet"
$ echo | awk -v awkvar = '$ myvar' 'ispis awkvar; '
$ echo | awk -v awkvar = "$ myvar" 'ispis awkvar; '

Izlaz:

U izlazu je prikazano da se vrijednost $ myvar ne može pročitati kada je zatvorena jednim navodnikom ('), a izlaz je $ myvar. Vrijednost $ myvar ispisuje se kad je priložen dvostrukim navodnikom (“).

Primjer - 3: Čitanje ARGC varijable u awk

ARGC varijabla koristi se za brojanje ukupnog broja argumenata naredbenog retka. Tri varijable argumenta naredbenog retka (t1, t2, t3) prosljeđuju se u sljedećoj skripti awk. Ovdje je ukupan broj argumenata sa skriptom 4. Pokrenite skriptu s terminala.

$ awk 'BEGIN print "Ukupno argumenata =", ARGC' t1 t2 t3

Izlaz:

Sljedeći će se izlaz pojaviti nakon pokretanja skripte.

Primjer - 4: Čitanje sadržaja datoteke pomoću varijabli argumenta

Stvorite tekstualnu datoteku s imenom kupac.txt sa sljedećim sadržajem za vježbanje ovog primjera. Ovdje je svako polje datoteke odvojeno jednim tab prostor.

kupac.txt

ID ID
103847 John Micheal
209485 Watson
974732 Mira Hossain

Naredba Awk može čitati svako polje iz bilo koje tekstualne datoteke pomoću varijabli argumenta. Postoje dva polja u kupac.txt datoteka. To su ID i Ime. Sljedeća skripta ispisat će ova dva polja prema varijablama argumenata, 1 USD i 2 dolara odvajanjem dva tab prostore. Pokrenite skriptu s terminala.

$ mačka kupac.txt
$ mačka kupac.txt | awk 'ispiši $ 1 "\ t \ t" $ 2;'

Izlaz:

Sljedeći će se izlaz pojaviti nakon pokretanja gornjih naredbi.

Primjer 5: Korištenje ugrađene varijable, FS i opcije razdvajanja polja s naredbom awk

FS varijabla koristi se u naredbi awk kao odvajač polja. Razmak se koristi kao zadana vrijednost FS. Sljedeća naredba će pročitati datoteku kupac.txt koristeći razmak kao razdjelnik polja i ispisati sadržaj datoteke. Pokrenite naredbu s terminala.

$ awk FS kupac.txt

Izlaz:

Sljedeći će se izlaz pojaviti nakon pokretanja skripte.

Naredba Awk može koristiti druge znakove kao odvajač polja pomoću opcije '-F'. Stvorite tekstualnu datoteku s imenom proizvod.txt sa sljedećim sadržajem gdje se ':' koristi kao odvajač polja.

proizvod.txt

101: Torta: 30 dolara
102: Olovka: 5 dolara
103: Sapun: 3 dolara
104: Šampon: 10 dolara

U datoteci se nalaze tri polja, proizvod.txt koja sadrži ID proizvoda, naziv i cijenu. Sljedeća naredba awk ispisat će samo drugo polje svakog retka. Pokrenite naredbe s terminala.

$ mačji proizvod.txt
$ awk -F ':' 'print $ 2' proizvod.txt

Izlaz:

Ovdje je prva naredba ispisala sadržaj proizvod.txt a druga naredba ispisala je samo drugo polje datoteke.

Primjer - 6: Korištenje ugrađene varijable, NR s naredbom awk

NR varijabla koristi se u naredbi awk za brojanje ukupnog broja zapisa ili redaka datoteke. Stvorite tekstualnu datoteku s imenom student.txt za testiranje funkcije ove varijable.

student.txt

Naziv šaržnog semestra
Ivan 20 3
Mira 22 1
Ella 18
Charle 15 8

Sljedeća skripta awk ispisat će prva tri retka proizvod.txt datoteka. Ovdje se dodaje uvjet korištenjem NR varijable. Naredba će ispisati one retke u kojima je vrijednost NR manja od 4. Pokrenite skriptu s terminala.

Izlaz:

Sljedeći će se izlaz pojaviti nakon pokretanja skripte.

$ mačka student.txt | awk 'NR < 4'

Primjer - 7: Korištenje ugrađene varijable, NF s naredbom awk

NF varijabla koristi se u naredbi awk za brojanje ukupnog broja polja u svakom retku datoteke. Sljedeća skripta awk primjenjuje se na datoteku, student.txt koja je stvorena u prethodnom primjeru. Skripta će ispisati te retke iz student.txt datoteka u kojoj su ukupna polja manja od 3. Pokrenite naredbu s terminala.

$ mačka student.txt | awk 'NF < 3'

Izlaz:

U datoteci postoji samo jedan redak u kojem je ukupan broj polja manji od 3 koji se ispisuje kao izlaz.

Primjer - 8: Korištenje ugrađene varijable, OFS s naredbom awk

OFS varijabla koristi se u naredbi awk za dodavanje separatora izlaznog polja u izlaz. proizvod.txt datoteka koristi se u ovom primjeru za prikaz upotrebe OFS varijable. ':' koristi se kao separator polja u proizvodu.txt datoteku. Sljedeća skripta awk upotrijebila je '->' kao OFS vrijednost, a drugo i treće polje datoteke ispisat će se dodavanjem ovog separatora. Pokrenite naredbe s terminala.

$ mačji proizvod.txt
$ awk -F ':' 'POČINITE OFS = "->"; print $ 2, $ 3;' proizvod.txt

Izlaz:

Sljedeći će se izlaz ispisati nakon pokretanja naredbi.

Zaključak:

U ovom su uputstvu pokušali objasniti najčešće upotrebe awk varijabli. Nadam se da će čitatelj nakon vježbanja ovog vodiča moći pravilno koristiti awk varijable u skripti.

Kako promijeniti pokazivač miša i veličinu, boju i shemu pokazivača na sustavu Windows 10
Pokazivač i pokazivač miša u sustavu Windows 10 vrlo su važni aspekti operativnog sustava. To se može reći i za druge operativne sustave, tako da u is...
Besplatni i otvoreni kodni pokretački programi za razvoj Linux igara
Ovaj će članak pokriti popis besplatnih i open source pokretačkih igara koje se mogu koristiti za razvoj 2D i 3D igara na Linuxu. Brojni su takvi moto...
Vodič za Shadow of the Tomb Raider za Linux
Shadow of the Tomb Raider dvanaesti je dodatak seriji Tomb Raider - franšizi u akcijsko-avanturističkoj igri koju je stvorio Eidos Montreal. I kritiča...