Gawk Scripting Brukseksempler

Gawk Scripting Brukseksempler
En måte å jobbe med filer i Linux er å bruke et skriptspråk for å administrere automatisering av gjentatte oppgaver. Et eksempel på et godt skriptspråk er awk Noe som gjør uttrekking av data og å jobbe med mønstre enkelt. GNU -implementeringen av AWK -skriptspråket er gawk. Hvis du ennå ikke er i gang med bruken av den, er du heldig. Dette innlegget presenterer de forskjellige eksemplene på bruk av gawk i Linux, og mot slutten av denne guiden vil du ha en solid forståelse av å jobbe med det.

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:

  • Formatutgangslinjer
  • Transformering av datafiler
  • Skanne filer per linje
  • Dele inngangslinjen i felt
  • Produserer formaterte rapporter
  • Sortering av data

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.