Hvordan bruke variabel i AWK -kommandoen

Hvordan bruke variabel i AWK -kommandoen
Variabler brukes til å lagre en hvilken som helst verdi midlertidig på ethvert programmeringsspråk. Å definere variabelen i AWK -kommandoen ligner på bashskriptspråk, og det fungerer som bash når skallvariabelen brukes med et enkelt sitat og dobbelt sitat. AWK-kommando har mange innebygde variabler for forskjellige formål. Hvordan brukerdefinerte, innebygde og skallvariabler kan brukes i AWK-kommandoen vises i denne opplæringen ved å bruke forskjellige eksempler.

EXample -1: Definere og skrive ut variabel

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

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

Produksjon:

Eksempel - 2: Bruke Shell -variabel i AWK med et enkelt sitat og dobbelt tilbud

Eksemplet viser hvordan skallvariabelen kan brukes 'AWK' -kommando. Her en skallvariabel, Myvar erklært med verdien, “Linux hint” I den første kommandoen. '$' -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 sitat (“) i' awk '-uttalelsen.

$ myvar = "Linux hint"
$ ekko | awk -v awkvar = '$ myvar' 'print awkvar; '
$ ekko | awk -v awkvar = "$ myvar" 'print awkvar; '

Produksjon:

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

Eksempel - 3: Lese ArgC -variabel i AWK

ArgC -variabel brukes til å telle det totale antallet kommandolinjeargumenter. Tre kommandolinje argumenter variabler (T1, T2, T3) sendes i følgende AWK -skript. Her er det totale antallet argumenter med skriptet 4. Kjør manuset fra terminalen.

$ awk 'begynn print "Total Arguments =", Argc' T1 T2 T3

Produksjon:

Følgende utgang vises etter å ha kjørt skriptet.

Eksempel - 4: Lese filinnhold etter argumentvariabler

Lag en tekstfil som heter kunde.tekst Med følgende innhold for å øve på dette eksemplet. Her skilles hvert felt i filen med singel Tab rom.

kunde.tekst

ID -navn
103847 John Micheal
209485 Watson
974732 Mira Hossain

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

$ CAT -kunde.tekst
$ CAT -kunde.txt | awk 'skriv ut $ 1 "\ t \ t" $ 2;'

Produksjon:

Følgende utgang vises etter å ha kjørt kommandoene ovenfor.

Eksempel- 5: Bruke innebygd variabel, FS og feltutskillelsesalternativ med AWK-kommando

FS -variabel brukes i AWK -kommando som feltseparator. Plass brukes som en standardverdi på FS. Følgende kommando vil lese filen kunde.tekst Bruker plass som feltskiller og skriv ut filinnholdet. Kjør kommandoen fra terminalen.

$ awk fs kunde.tekst

Produksjon:

Følgende utgang vises etter å ha kjørt skriptet.

AWK-kommando kan bruke andre tegn som feltskiller ved å bruke alternativet '-f'. Lag en tekstfil som heter produkt.tekst med følgende innhold der ':' brukes som feltskillelse.

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.

$ katteprodukt.tekst
$ awk -f ':' 'skriv ut $ 2' produkt.tekst

Produksjon:

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

Eksempel - 6: Bruke innebygd variabel, NR med AWK -kommando

NR -variabel brukes i AWK -kommando for å telle det totale antallet poster eller linjer i en fil. Lag en tekstfil som heter student.tekst For å teste funksjonen til denne variabelen.

student.tekst

Navn batchsemester
John 20 3
Mira 22 1
Ella 18
Charle 15 8

Følgende AWK -skript vil skrive ut de tre første linjene i produkt.tekst fil. Her blir en tilstand lagt til ved å bruke NR -variabelen. Kommandoen vil skrive ut de linjene der NR -verdien er mindre enn 4. Kjør manuset fra terminalen.

Produksjon:

Følgende utgang vises etter å ha kjørt skriptet.

$ CAT -student.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 på filen, student.tekst som er opprettet i forrige eksempel. Skriptet vil skrive ut disse linjene fra student.tekst fil der de totale feltene er mindre enn 3. Kjør kommandoen fra terminalen.

$ CAT -student.txt | awk 'nf < 3'

Produksjon:

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

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

OFS -variabel brukes i AWK -kommando for å legge til utdata -separator i utgangen. produkt.tekst Fil brukes i dette eksemplet for å vise bruken av OFS -variabel. ':' brukes som feltskiller i produktet.txt -fil. Følgende AWK-skript brukt '->' som OFS-verdi og, det andre og det tredje feltet i filen vil skrive ut ved å legge til denne separatoren. Kjør kommandoene fra terminalen.

$ katteprodukt.tekst
$ awk -f ':' 'begynn OFS = " ->"; skriv ut $ 2, $ 3;' produkt.tekst

Produksjon:

Følgende utgang vil skrives ut etter å ha kjørt kommandoene.

Konklusjon:

Vanlige bruksområder av AWK -variabler er prøvd å forklare i denne opplæringen. Håper, leseren vil kunne bruke AWK -variabler riktig i skriptet etter å ha øvd på denne opplæringen.