Hvordan bruke flere avgrensere i AWK

Hvordan bruke flere avgrensere i AWK
AWK er et kraftig, mønster-matchende programmeringsspråk som fungerer i kommandolinjen for å finne forskjellige mønstre i kommandoutganger og filer.

Vi kan vurdere AWK som en forbedring i forhold til SED siden den tilbyr flere funksjoner, inkludert matriser, variabler, løkker og gode gamle, vanlige uttrykk.

I denne opplæringen vil vi raskt diskutere hvordan du kan bruke flere avgrensere i en AWK -kommando. Før vi fortsetter, vær oppmerksom på at denne opplæringen ikke er en nybegynnerguide til AWK, og jeg hadde heller ikke tenkt den som sådan.

Se følgende ressurs hvis du trenger en nybegynnerguide til AWK.

https: // linuxhint.com/use_awk_linux/

Hva er avgrensere?

Jeg er sikker på at du, siden du tar deg tid til å lese denne artikkelen, er kjent med konseptet avgrensere. Men det skader ikke å gjenskape, så la oss gjøre det nå:

I et nøtteskall er avgrensere en sekvens av tegn som brukes til å skille tekstverdier. Det er forskjellige vanlige typer avgrensere som inkluderer:

Navn Symbol
Komma ,
Kolon :
Semi-kolon ;
Periode .
Rør |
Backslash \
Skråstrek /
Parentes ()
Krøllete regulering
Firkantede parenteser []
Rom

Awk Regex Field Separator

AWK Field Separator (FS) brukes til å spesifisere og kontrollere hvordan AWK deler en rekord i forskjellige felt. Den kan også godta en enkelt karakter av et vanlig uttrykk. Når du har spesifisert et vanlig uttrykk som verdien for FS, skanner AWK inngangsverdiene for sekvensen av tegn som er satt i det vanlige uttrykket.

Vi kommer til å implementere funksjonaliteten til AWK for å akseptere vanlige ekspresjonsverdier i feltseparatoren for å koble flere avgrensere.

Bruk flere avgrensere

For å illustrere hvordan du kan skille ved hjelp av flere avgrensere i AWK, vil jeg bruke et enkelt eksempel for å vise deg hvordan du bruker denne funksjonaliteten.

Anta at du har en fil med data som følger:

/org/gnone/desktop/grensesnitt: Etablert: APR17 16.59.09 | org.Gnome.Terminal.Desktop [1099]

Fra filen ovenfor ønsker vi å få utdataene som den som er vist nedenfor:

org/gnome/desktop/grensesnitt etablert 17. april 16:59.09 Org.Gnome.Terminal.Desktop [1099]

For å skille filen ved hjelp av de forskjellige avgrenserne i dette tilfellet, en tykktarm, rom og et rør-kan vi bruke en kommando som vist nedenfor:

awk -f '[: |]' 'skriv ut $ 1, $ 2, $ 3, $ 4, $ 5, $ 6' Bruker.Logg

Kommandoen ovenfor sender ut informasjonen som vist nedenfor:

Som du kan se, kan du kombinere mer enn en avgrenser i AWK -feltskilleren for å få spesifikk informasjon.

Konklusjon

I denne raske guiden diskuterte vi å bruke AWK for å skille flere avgrensere i en inndatafil.

For å få mer informasjon om hvordan du kan utvide funksjonaliteten til AWK FS, bør du vurdere følgende ressurser:

https: // www.gnu.org/programvare/gawk/manuell/html_node/regexp-felt-splitting.html

https: // www.gnu.org/programvare/gawk/manuell/html_node/felt-separatorer.html