Komme i gang med Gawk
Hvis du bruker de nyeste Linux -versjonene, bør Gawk installeres som standard. Du kan bekrefte ved å sjekke versjonen.
Det er forskjellige måter å bruke gawk. De vanlige funksjonalitetene er følgende:
Den grunnleggende syntaks for gawk er:
$ GAWK [POSIX / GNU -stilalternativer] -F Program_File [ -] Fil
$ Gawk [Posix / GNU -stilalternativer] [ -] 'Program' -fil ..
For å bruke gawk bruker du enten -f alternativ for å spesifisere en skriptfil eller spesifisere skriptet på kommandolinjen direkte.
Det er tre viktige alternativer å merke seg når du bruker GAWK:
1. -f fil, -file = fil: Brukes når du vil bruke gawk og lese kommandoer fra en fil. Filen er skriptet.
2. -v var = val, -assign = var = val: Brukes når du trenger å tilordne en verdi til en variabel før du utfører et skript.
3. -F fs, -field -separator = fs: Verdien av den forhåndsdefinerte variabelen FS blir brukt som separator for inngangsfeltet.
Innebygde variabler
Gawk tilbyr innebygde variabler som:
Fs: Brukes når du deler filer og inneholder feltets separatorkarakter.
Rs: Inneholder gjeldende karakterseparator.
OFS: Inneholder utgangsfeltets separator som skiller feltene som AWK -utskrifter.
Nf: Antall felt for inngangsposten blir lagret i NF.
Ors: Inneholder utgangsfeltets separator som skiller utgangslinjene som er trykt av AWK.
Nr: Inneholder det totale antallet inngangslinjer.
I forrige eksempel bruker vi * som separator for inngangslinjene i filen.
Eksempel Bruk av gawk
1. -F
For å sortere en tekstfil og skrive ut de tre første tykktarmsseparerte feltene, bruk følgende kommando. Merk at vi bruker Passwd som vår fil her:
$ gawk -f: 'skriv ut $ 1; Skriv ut $ 2; Skriv ut $ 3 ' /etc /passwd
Her er separatoren vår en full kolon. Siden vi vil ha de tre første feltene, spesifiserer du dem som vist i forrige eksempel. Du kan finjustere det rundt og bruke en annen separator og et annet antall felt.
2. -f
For å spesifisere AWK -programkilden fra en fil, bruk -F -flagget etterfulgt av filen:
$ gawk -f: -f file1.txt /etc /passwd
3. Skrive ut innholdet i en fil
Bruke gawk på en fil skriver ut alle datalinjene i filen.
4. Arbeide med mønstre
Du kan også bruke Gawk og bare skrive ut linjene som samsvarer med et gitt mønster. For eksempel å skrive ut en linje som inneholder et bestemt ord, er ordet i vårt tilfelle ordet Kim, Kommandoen ville være:
$ gawk '/ kim/ print' filnavn
Her kan mønsteret også være en karakter. For å skrive ut alle linjene som inneholder en kolon, vil kommandoen for eksempel være i følgende bilde:
Du kan også spesifisere de spesifikke linjene som skal skrives ut. For å skrive ut linjene som inneholder spesifikke tegn som større enn 6, er syntaks: for eksempel:
$ gawk 'lengde ($ 0)> 6' filnavn
5. Dele linjer i felt
Gawk skriver som standard ut hvert felt når du skriver ut linjer i en fil. Du kan imidlertid spesifisere hvilket felt du vil skrive ut. Det første feltet blir lagret i $ 1 og hele linjen er representert som $ 0. Som standard blir hele linjen skrevet ut med mindre du spesifiserer for å skille feltene basert på hvitrommet.
For eksempel, for å skille linjene og bare skrive ut det andre feltet på hver linje, ville kommandoen være:
$ gawk 'skriv ut $ 2' filnavn
For å legge til linjenumre, legg til Nr variabel.
Den nye kommandoen ville være:
$ gawk 'print nr, $ 2' filnavn
6. Få antall linjer
Det kan hende du må få det totale antallet linjer for store filer, og du kan oppnå det ved å bruke følgende syntaks:
$ gawk 'slutt print nr' filnavn
Konklusjon
Å vite hvordan du bruker Gawk i Linux er morsomt og nyttig, spesielt når du arbeider med tekstdata. Du kan bruke de forskjellige mønstrene til å trekke ut og manipulere dataene. Forhåpentligvis gir eksemplene dekket i denne artikkelen deg et forsprang og åpner øynene for å bruke gawk for forskjellige aktiviteter.