Ärme

Kuidas kasutada muutujat awk käsus

Kuidas kasutada muutujat awk käsus
Muutujaid kasutatakse mis tahes väärtuse ajutiseks salvestamiseks mis tahes programmeerimiskeeles.  Muutuja määramine käsus awk on sarnane bash-i skriptikeelega ja see töötab nagu bash, kui shellimuuturit kasutatakse ühe tsitaadi ja topelt-tsitaadiga. Awk käsul on palju sisseehitatud muutujaid erinevatel eesmärkidel. Kuidas kasutaja määratletud, sisseehitatud ja shellimuutujaid saab käsus awk kasutada, kuvatakse selles õpetuses erinevate näidete abil.

Example -1: Muutuja määratlemine ja printimine

'awk' kasutab muutuja määratlemiseks valikut '-v'. Selles näites myvar muutuja on väärtuse salvestamiseks määratletud käsus 'awk', „AWK muutuja” mis hiljem trükitakse. Väljundi kontrollimiseks käivitage terminalist järgmine käsk.

$ kaja | awk -v myvar = 'AWK muutuja' 'print myvar'

Väljund:

Näide - 2: shellimuutuja kasutamine awk-s ühe ja kahe jutumärgiga

Näide näitab, kuidas shellimuuturit saab kasutada käsku awk. Siin shellimuutuja, myvar deklareeritakse koos väärtusega, "Linuxi vihje" esimeses käsus. Väärtuse lugemiseks kasutatakse sümbolit '$' koos shellimuutuja nimega. Teine käsk loeb muutujat, $ myval ühe jutumärgiga (') ja kolmas käsk loeb muutuja $ myvar topelttsiteerimisega (“) lauses' awk '.

$ myvar = "Linuxi vihje"
$ kaja | awk -v awkvar = '$ myvar' 'print awkvar; '
$ kaja | awk -v awkvar = "$ myvar" 'print awkvar; '

Väljund:

Väljundis on näidatud, et $ myvari väärtust ei saa lugeda, kui see on lisatud ühe jutumärgiga (') ja väljund on $ myvar. Väärtus $ myvar trükitakse, kui see on lisatud topeltpakkumisega (“).

Näide - 3: ARGC muutuja lugemine awk-s

ARGC muutujat kasutatakse käsurea argumentide koguarvu lugemiseks. Kolm käsurea argumentide muutujat (t1, t2, t3) edastatakse järgmises awk-skriptis. Siin on skriptiga argumentide koguarv 4. Käivitage skript terminalist.

$ awk 'BEGIN print "Argumente kokku =", ARGC' t1 t2 t3

Väljund:

Pärast skripti käivitamist ilmub järgmine väljund.

Näide - 4: faili sisu lugemine argumentmuutujate järgi

Looge nimega tekstifail klient.txt selle sisu praktiseerimiseks järgmise sisuga. Siin eraldatakse faili kõik väljad ühega vaheleht ruumi.

klient.txt

ID nimi
103847 John Micheal
209485 Watson
974732 Mira Hossain

Awk-käsk saab iga välja lugeda igast tekstifailist argumendimuutujate kaupa. Seal on kaks välja klient.txt faili. Need on ID ja nimi. Järgmine skript prindib need kaks välja argumentide muutujate järgi, 1 dollar ja 2 dollarit eraldades kaks vaheleht tühikud. Käivitage skript terminalist.

$ kassi klient.txt
$ kassi klient.txt | awk 'print $ 1 "\ t \ t" $ 2;'

Väljund:

Pärast ülaltoodud käskude käivitamist ilmub järgmine väljund.

Näide- 5: sisseehitatud muutuja, FS ja väljaeraldusvõimaluse kasutamine käsuga awk

FS muutujat kasutatakse awk käsus välieraldajana. FS-i vaikeväärtusena kasutatakse tühikut. Järgmine käsk loeb faili klient.txt kasutades ruumi eraldajana tühikut ja printige faili sisu. Käivitage terminalist käsk.

$ awk FS klient.txt

Väljund:

Pärast skripti käivitamist ilmub järgmine väljund.

Awk-käsk võib välja eraldajana kasutada muid märke, kasutades valikut '-F'. Looge nimega tekstifail toote.txt järgmise sisuga, kus ':' kasutatakse väljaeraldajana.

toote.txt

101: Kook: 30 dollarit
102: Pliiats: 5 dollarit
103: seep: 3 dollarit
104: Šampoon: 10 dollarit

Failis on kolm välja, toote.txt mis sisaldab toote ID-d, nime ja hinda. Järgmine käsk awk prindib iga rea ​​ainult teise välja. Käivitage terminalist käsud.

$ kassitoode.txt
$ awk -F ':' 'print $ 2' toode.txt

Väljund:

Siin trükkis esimene käsk sisu toote.txt ja teine ​​käsk printis ainult faili teise välja.

Näide - 6: Sisseehitatud muutuja kasutamine, NR käsuga awk

Muutujat NR kasutatakse käsus awk failide kirjete või ridade koguarvu lugemiseks. Looge nimega tekstifail õpilane.txt selle muutuja funktsiooni testimiseks.

õpilane.txt

Nimepaketi semester
Johannes 20 3
Mira 22 1
Ella 18
Charle 15 8

Järgmine awk-skript prindib kolm esimest rida toote.txt faili. Siin lisatakse tingimus NR muutuja abil. Käsk prindib need read, kus NR väärtus on väiksem kui 4. Käivitage skript terminalist.

Väljund:

Pärast skripti käivitamist ilmub järgmine väljund.

$ kassiõpilane.txt | awk 'NR < 4'

Näide - 7: Sisseehitatud muutuja kasutamine, NF koos käsuga awk

NF-muutujat kasutatakse käsus awk failide igas reas olevate väljade koguarvu lugemiseks. Failile rakendatakse järgmine awk-skript, õpilane.txt mis on loodud eelmises näites. Skript prindib need read kohast õpilane.txt fail, kus väljade koguarv on väiksem kui 3. Käivitage terminalist käsk.

$ kassiõpilane.txt | awk 'NF < 3'

Väljund:

Failis on ainult üks rida, kus väljade prinditavate väljade koguarv on väiksem kui 3.

Näide - 8: sisseehitatud muutuja OFS kasutamine käsuga awk

OFS muutujat kasutatakse awk käsus väljundvälja eraldaja lisamiseks väljundisse. toote.txt Selles näites kasutatakse faili OFS muutuja kasutamise näitamiseks. ':' kasutatakse tootes väljaeraldajana.txt-fail. Järgmine awk-skript kasutas OFS-i väärtusena '->' ning faili teine ​​ja kolmas väli prinditakse selle eraldaja lisamisega. Käivitage terminalist käsud.

$ kassitoode.txt
$ awk -F ':' 'BEGIN OFS = "->"; print $ 2, $ 3;' toode.txt

Väljund:

Pärast käskude käivitamist prinditakse järgmine väljund.

Järeldus:

Selles õpetuses on püütud selgitada awk-muutujate kõige tavalisemaid kasutusviise. Loodetavasti saab lugeja pärast selle õpetuse harjutamist skriptis awk-muutujaid õigesti kasutada.

Lahing Wesnothi eest 1.13.6 Areng vabastati
Lahing Wesnothi eest 1.13.6 ilmus eelmisel kuul, on 1-s kuues arendusversioon.13.x-seeria ja see pakub mitmeid täiustusi, eelkõige kasutajaliidese ja ...
League of Legendsi installimine Ubuntu 14-le.04
Kui olete League of Legends fänn, siis on see teile võimalus proovida League of Legendsit. Pange tähele, et LOL-i toetab PlayOnLinux, kui olete Linuxi...
Installige uusim OpenRA strateegiamäng Ubuntu Linuxi
OpenRA on tasuta / tasuta reaalajas strateegiamängumootor, mis loob uuesti Westwoodi varased mängud nagu klassikaline Command & Conquer: Red Alert. Ja...