Awk

Hvordan bruke variabel i awk-kommando

Hvordan bruke variabel i awk-kommando
Variabler brukes til å lagre verdier som er midlertidige i ethvert programmeringsspråk.  Å definere variabelen i awk-kommando ligner på bash-skriptspråk, og det fungerer som bash når skallvariabelen brukes med et enkelt sitat og dobbelt sitat. Awk-kommandoen har mange innebygde variabler for forskjellige formål. Hvordan brukerdefinerte, innebygde og skallvariabler kan brukes i kommandoen awk, vises i denne veiledningen ved hjelp av forskjellige eksempler.

Eeksempel -1: Definere og skrive ut variabel

'awk' -kommandoen bruker '-v' for å definere variabelen. I dette eksemplet er myvar variabel er definert i kommandoen 'awk' for å lagre verdien, “AWK-variabel” som blir skrevet ut senere. Kjør følgende kommando fra terminalen for å sjekke utdataene.

$ ekko | awk -v myvar = 'AWK-variabel' 'print myvar'

Produksjon:

Eksempel - 2: Bruke skallvariabel i awk med et enkelt tilbud og dobbelt tilbud

Eksemplet viser hvordan skallvariabelen kan brukes 'awk' kommando. Her en skallvariabel, myvar blir deklarert med verdien, “Linux Hint” i første kommando. '$' symbol brukes med et skallvariabelnavn for å lese verdien. Den andre kommandoen leser variabelen, $ myval med et enkelt sitat (') og den tredje kommandoen leser variabelen $ myvar med dobbelt anførselstegn (“) i utsagnet" awk ".

$ myvar = "Linux Hint"
$ ekko | awk -v awkvar = '$ myvar' 'skriv awkvar; '
$ ekko | awk -v awkvar = "$ myvar" 'skriv awkvar; '

Produksjon:

Det vises i utgangen at verdien på $ myvar ikke kan leses når den er vedlagt med et enkelt tilbud (') og utdataene er $ myvar. Verdien av $ myvar skrives ut når den er vedlagt et dobbelt tilbud (“).

Eksempel - 3: Lesing av ARGC-variabel i awk

ARGC-variabel brukes til å telle det totale antallet kommandolinjeargumenter. Tre kommandolinjeargumentvariabler (t1, t2, t3) sendes i følgende awk-skript. Her er det totale antallet argumenter med skriptet 4. Kjør skriptet fra terminalen.

$ awk 'BEGIN print "Total argumenter =", ARGC' t1 t2 t3

Produksjon:

Følgende utdata vises etter kjøring av skriptet.

Eksempel - 4: Lesing av filinnhold etter argumentvariabler

Lag en tekstfil med navnet kunde.tekst med følgende innhold for å øve på dette eksemplet. Her er hvert felt i filen skilt med enkelt fanen rom.

kunde.tekst

ID-navn
103847 John Micheal
209485 Watson
974732 Mira Hossain

Awk-kommandoen kan lese hvert felt fra hvilken som helst tekstfil etter argumentvariabler. Det er to felt i kunde.tekst fil. Dette er ID og navn. Følgende skript vil skrive ut disse to feltene etter argumentvariabler, $ 1 og $ 2 ved å skille to fanen mellomrom. Kjør skriptet fra terminalen.

$ katt kunde.tekst
$ katt kunde.txt | awk 'print $ 1 "\ t \ t" $ 2;'

Produksjon:

Følgende utdata vises når du har kjørt kommandoene ovenfor.

Eksempel 5: Bruke innebygd variabel, FS og feltutskilleralternativ med awk-kommando

FS-variabel brukes i awk-kommando som feltseparator. Plass brukes som standardverdi på FS. Følgende kommando vil lese filen kunde.tekst ved å bruke mellomrom som feltseparator og skrive ut filinnholdet. Kjør kommandoen fra terminalen.

$ awk FS-kunde.tekst

Produksjon:

Følgende utdata vises etter kjøring av skriptet.

Awk-kommandoen kan bruke andre tegn som feltseparator ved å bruke '-F' alternativet. Lag en tekstfil med navnet produkt.tekst med følgende innhold der ':' brukes som feltseparator.

produkt.tekst

101: Kake: $ 30
102: Blyant: $ 5
103: Såpe: $ 3
104: Sjampo: $ 10

Det er tre felt i filen, produkt.tekst som inneholder produkt-ID, navn og pris. Følgende awk-kommando vil bare skrive ut det andre feltet på hver linje. Kjør kommandoene fra terminalen.

$ kattprodukt.tekst
$ awk -F ':' 'print $ 2' produkt.tekst

Produksjon:

Her skrev den første kommandoen ut innholdet av produkt.tekst og den andre kommandoen skrev bare ut det andre feltet i filen.

Eksempel - 6: Bruk innebygd variabel, NR med awk-kommando

NR-variabelen brukes i awk-kommando for å telle det totale antallet poster eller linjer i en fil. Lag en tekstfil med navnet student.tekst for å teste funksjonen til denne variabelen.

student.tekst

Navn Batch Semester
Johannes 20 3
Mira 22 1
Ella 18
Charle 15 8

Følgende awk-skript vil skrive ut de tre første linjene av produkt.tekst fil. Her legges det til en betingelse ved å bruke NR-variabelen. Kommandoen vil skrive ut de linjene der NR-verdien er mindre enn 4. Kjør skriptet fra terminalen.

Produksjon:

Følgende utdata vises etter kjøring av skriptet.

$ kattelev.txt | awk 'NR < 4'

Eksempel - 7: Bruke innebygd variabel, NF med awk-kommando

NF-variabel brukes i awk-kommando for å telle det totale antallet felt i hver linje i en fil. Følgende awk-skript brukes for filen, student.tekst som er opprettet i forrige eksempel. Manuset vil skrive ut disse linjene fra student.tekst fil hvor de totale feltene er mindre enn 3. Kjør kommandoen fra terminalen.

$ kattelev.txt | awk 'NF < 3'

Produksjon:

Det er bare en linje i filen der det totale antallet felt er mindre enn 3 som skrives ut som utskrift.

Eksempel - 8: Bruke innebygd variabel, OFS med awk-kommando

OFS-variabelen brukes i awk-kommando for å legge til utgangsfeltseparator i utgangen. produkt.tekst filen brukes i dette eksemplet for å vise bruken av OFS-variabelen. ':' brukes som feltseparator i produktet.txt-fil. Følgende awk-skript brukte '->' som OFS-verdi, og det andre og det tredje feltet i filen skrives ut ved å legge til denne skilletegn. Kjør kommandoene fra terminalen.

$ kattprodukt.tekst
$ awk -F ':' 'BEGIN OFS = "->"; skriv ut $ 2, $ 3;' produkt.tekst

Produksjon:

Følgende utskrift skrives ut etter at du har kjørt kommandoene.

Konklusjon:

De vanligste bruken av awk-variabler er prøvd å forklare i denne opplæringen. Håper, leseren vil kunne bruke awk-variabler riktig i skriptet etter å ha trent denne opplæringen.

Slik installerer du League Of Legends på Ubuntu 14.04
Hvis du er fan av League of Legends, er dette en mulighet for deg å prøvekjør League of Legends. Merk at LOL støttes på PlayOnLinux hvis du er en linu...
Installer det siste OpenRA-strategispillet på Ubuntu Linux
OpenRA er en Libre / Free Real Time Strategy-spillmotor som gjenskaper de tidlige Westwood-spillene som den klassiske Command & Conquer: Red Alert. Di...
Installer nyeste Dolphin Emulator for Gamecube & Wii på Linux
Dolphin Emulator lar deg spille de valgte Gamecube- og Wii-spillene dine på Linux Personal Computers (PC). Som en fritt tilgjengelig og åpen kildekod...