Awk

Sådan bruges variabel i awk-kommando

Sådan bruges variabel i awk-kommando
Variabler bruges til at gemme enhver midlertidig værdi på ethvert programmeringssprog.  Definition af variablen i awk-kommando ligner bash scripting sprog, og det fungerer som bash, når shellvariablen bruges med et enkelt citat og dobbelt citat. Awk-kommandoen har mange indbyggede variabler til forskellige formål. Hvordan brugerdefinerede, indbyggede og shell-variabler kan bruges i awk-kommando, vises i denne vejledning ved hjælp af forskellige eksempler.

Eeksempel -1: Definition og udskrivning af variabel

'awk' kommando bruger '-v' mulighed for at definere variablen. I dette eksempel er myvar variabel er defineret i kommandoen 'awk' for at gemme værdien, “AWK-variabel” der udskrives senere. Kør følgende kommando fra terminalen for at kontrollere output.

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

Produktion:

Eksempel - 2: Brug af shellvariabel i awk med et enkelt tilbud og dobbelt tilbud

Eksemplet viser, hvordan shellvariablen kan bruges til kommandoen 'awk'. Her en skalvariabel, myvar erklæres med værdien, “Linux-tip” i den første kommando. '$' symbol bruges med et shellvariabelnavn til at læse værdien. Den anden kommando læser variablen, $ myval med et enkelt citat ('), og den tredje kommando læser variablen $ myvar med dobbelt citat (“) i' awk 'udsagnet.

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

Produktion:

Det vises i output, at værdien af ​​$ myvar ikke kan læses, når den er lukket med et enkelt tilbud ('), og output er $ myvar. Værdien af $ myvar udskrives, når den er lukket med et dobbelt tilbud (“).

Eksempel - 3: Læsning af ARGC-variabel i awk

ARGC-variablen bruges til at tælle det samlede antal kommandolinjeargumenter. Tre kommandolinjeargumentvariabler (t1, t2, t3) sendes i det følgende awk-script. Her er det samlede antal argumenter med scriptet 4. Kør scriptet fra terminalen.

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

Produktion:

Følgende output vises efter kørsel af scriptet.

Eksempel - 4: Læsning af filindhold efter argumentvariabler

Opret en tekstfil med navnet kunde.txt med følgende indhold for at øve dette eksempel. Her er hvert felt i filen adskilt af et enkelt fanen plads.

kunde.txt

ID-navn
103847 John Micheal
209485 Watson
974732 Mira Hossain

Awk-kommandoen kan læse hvert felt fra enhver tekstfil ved hjælp af argumentvariabler. Der er to felter i kunde.txt fil. Disse er ID og navn. Følgende script udskriver disse to felter med argumentvariabler, $ 1 og $ 2 ved at adskille to fanen mellemrum. Kør scriptet fra terminalen.

$ kat kunde.txt
$ kat kunde.txt | awk 'udskriv $ 1 "\ t \ t" $ 2;'

Produktion:

Følgende output vises efter kørsel af ovenstående kommandoer.

Eksempel 5: Brug af indbygget variabel, FS- og feltseparatorindstilling med awk-kommando

FS-variabel bruges i awk-kommando som en feltadskiller. Plads bruges som standardværdi for FS. Den følgende kommando læser filen kunde.txt ved hjælp af plads som feltseparator og udskrive filindholdet. Kør kommandoen fra terminalen.

$ awk FS-kunde.txt

Produktion:

Følgende output vises efter kørsel af scriptet.

Awk-kommandoen kan bruge andre tegn som feltseparator ved hjælp af indstillingen '-F'. Opret en tekstfil med navnet produkt.txt med følgende indhold, hvor ':' bruges som feltseparator.

produkt.txt

101: Kage: $ 30
102: Blyant: $ 5
103: Sæbe: $ 3
104: Shampoo: $ 10

Der er tre felter i filen, produkt.txt der indeholder produkt-id, navn og pris. Den følgende awk-kommando udskriver kun det andet felt på hver linje. Kør kommandoerne fra terminalen.

$ kat produkt.txt
$ awk -F ':' 'print $ 2' produkt.txt

Produktion:

Her udskrev den første kommando indholdet af produkt.txt og den anden kommando udskrev kun det andet felt i filen.

Eksempel - 6: Brug af indbygget variabel, NR med awk-kommando

NR-variablen bruges i kommandoen awk til at tælle det samlede antal poster eller linjer i en fil. Opret en tekstfil med navnet studerende.txt for at teste funktionen af ​​denne variabel.

studerende.txt

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

Følgende awk-script udskriver de første tre linjer i produkt.txt fil. Her tilføjes en betingelse ved hjælp af NR-variablen. Kommandoen udskriver de linjer, hvor NR-værdien er mindre end 4. Kør scriptet fra terminalen.

Produktion:

Følgende output vises efter kørsel af scriptet.

$ kat studerende.txt | awk 'NR < 4'

Eksempel - 7: Brug af indbygget variabel, NF med awk-kommando

NF-variablen bruges i kommandoen awk til at tælle det samlede antal felter i hver linje i en fil. Følgende awk-script anvendes til filen, studerende.txt som er oprettet i det foregående eksempel. Scriptet udskriver disse linjer fra studerende.txt fil, hvor de samlede felter er mindre end 3. Kør kommandoen fra terminalen.

$ kat studerende.txt | awk 'NF < 3'

Produktion:

Der findes kun en linje i filen, hvor det samlede antal felter er mindre end 3, der udskrives som output.

Eksempel - 8: Brug af indbygget variabel, OFS med awk-kommando

OFS-variablen bruges i awk-kommando til at tilføje outputfeltadskiller i output. produkt.txt -fil bruges i dette eksempel til at vise brugen af ​​OFS-variablen. ':' bruges som feltseparator i produktet.txt-fil. Følgende awk-script bruges '->' som OFS-værdi, og det andet og det tredje felt i filen udskrives ved at tilføje denne separator. Kør kommandoerne fra terminalen.

$ kat produkt.txt
$ awk -F ':' 'BEGIN OFS = "->"; udskriv $ 2, $ 3;' produkt.txt

Produktion:

Følgende output udskrives efter kørsel af kommandoerne.

Konklusion:

De mest almindelige anvendelser af awk-variabler forsøges at forklare i denne vejledning. Håber, læseren vil være i stand til at bruge awk-variabler korrekt i scriptet efter at have øvet denne tutorial.

Bedste apps til Gamepad Mapping til Linux
Hvis du kan lide at spille spil på Linux med en gamepad i stedet for et typisk tastatur- og musesystem, er der nogle nyttige apps til dig. Mange pc-sp...
Nyttige værktøjer til Linux-spillere
Hvis du kan lide at spille spil på Linux, er chancerne for, at du måske har brugt apps og hjælpeprogrammer som Wine, Lutris og OBS Studio for at forbe...
HD Remastered-spil til Linux, der aldrig tidligere havde haft en Linux-udgivelse
Mange spiludviklere og udgivere kommer med HD-remaster af gamle spil for at forlænge franchisens levetid. Venligst fans, der anmoder om kompatibilitet...