Lær Linux

Linux awk-kommando med 10 eksempler

Linux awk-kommando med 10 eksempler

Datasystemer har alltid vært brukt til å analysere verdifulle data som er lagret i enkle tekstfiler. I sin tur administreres selve datasystemene gjennom loggfiler. Det som potensielt er vanlig i disse to situasjonene, er at de inneholder store mengder data, som ofte må strømlinjeformes før dataene faktisk leses; ellers er det bare forvirrende.

For eksempel, hvis du leser noen data ordnet i tabellform, vil du ha noen kolonner, du vil ikke ha andre.

Dette kravet var veldig alvorlig allerede på dagen, og følgelig har GNU Project et fantastisk verktøy som hjelper brukere å filtrere og trekke ut data for en bedre opplevelse. Det verktøyet er AWK.

Historie

AWK er egentlig et programmeringsspråk som er dedikert til tekstbehandling. Den brukes til datautvinning i bestemte mønstre. Den ble utviklet på 1970-tallet av Bell Labs, av Alfred Aho, Peter Weinberger og Brian Kernighan (deres etternavn initialer fødte navnet). Utviklingen av awk stoppet ikke der. En ny versjon ble introdusert i 1985, som førte til nye endringer i awk-kommandoen, inkludert muligheten til å håndtere flere inngangsstrømmer, beregnede regulære uttrykk, brukerdefinerte funksjoner og mye mer! Kort fortalt gjorde oppdateringen det til et kraftigere programmeringsspråk.

Awk har en annen implementering. For å sikre at det er en riktig implementering som tilbyr en standard tilnærming, skrev Paul Rubin gawk i 1986. Det fungerte bra med det nyere awk.

Bortsett fra det, i 1989 ble System V Release lagt til nye funksjoner. Utviklerne forbedret også de mørke hjørnene, noe som gjorde det bedre for programmerere og brukere å bruke den. Den siste endringen skjedde i 1997 da awk så nettverkstilgang - noe som gir brukerne muligheten til å løse problemer eksternt.

Den siste omskrevningen som ble gjort i 2011 da John Haque omskrev gawk internals.

Ting du kan gjøre med AWK

Nå skal det være noe klart hva AWK er i stand til. Det er et generelt skriptspråk som lar deg håndtere tekstbehandling. Avanserte brukere kan også bruke den til analyse og rapportering.

AWK er ikke som andre programmeringsspråk, da det er datadrevet, snarere enn et prosessuelt programmeringsspråk. Det betyr at du effektivt kan bruke den til å utføre handlinger mot tekstinntasting. Kort sagt, du kan bruke den til å transformere data, legge dem inn og også sende dem som standardutgang.

Kort sagt, du kan bruke AWK til å utføre enkle operasjoner som å dele hver inngangslinje i felt, skanne en fil linje for linje, utføre en handling (er) på samsvarslinjer, og så videre! Kommandoen awk er også nyttig for prosessformaterte rapporter og transformerer datafiler. Videre får du også tilgang til programmeringskonstruksjoner som conditional & loops, string & arithmetic operations, og formatere output-linjer.

Hvordan awk fungerer

I denne delen skal vi lære hvordan awk fungerer. Det er viktig å lære at awk har forskjellige implementeringer. For å sikre at vi er på samme side, vil vi diskutere og bruke GNU-implementeringen - som er populært kjent som gawk. I de fleste tilfeller er gawken symlinket til awk-tolken.

For å få god forståelse, må vi først forstå postene og feltene.

Det er velkjent at awk kan behandle tekststrømmer og datafiler. For å behandle dataene er inngangen delt inn i felt og poster. For å sikre at awk ikke blir overveldet, behandles en post til enhver tid til inngangens slutt er nådd. Videre er postene delt inn i enkle seksjoner ved hjelp av en plateseparator som bruker tegn. Dessuten er hver post skilt med nye linjer. Dette betyr at hver linje kan betegnes som en post.

Du kan velge å angi en ny plateutskiller ved hjelp av RS-variabelen.

Deretter kommer den arkiverte separatoren. Som vanlig har hver post felt, og de skilles fra ved hjelp av feltskilleren. Feltutskilleren kan være mellomrom, faner, nylinjetegn og mellomrom. Det refereres også til hvert felt ved hjelp av $ -symbolet, mens feltnummeret begynner med 1. Dette betyr at det første feltet kan betegnes som $ 1, mens det andre feltet er betegnet som $ 2. På denne måten kan det nte feltet betegnes som $ nf.

The awk-programmet

Det andre aspektet av awk er awk-programmet. Hvis du vil jobbe med awk, må du skrive et program som lar kommandoen utføre eller behandle teksten. Awk-programmet tilbyr mye funksjonalitet ved hjelp av regler og brukerdefinerte funksjoner. Reglene fungerer med handlingspar eller ett mønster, og reglene skilles fra ved hjelp av semikolon eller ny linje.

Hvis du lurer på, vil et awk-program se ut som nedenfor.

mønster action mønster action .. 

Kort fortalt fungerer awk-programmet etter å matche postene basert på mønstre. Hvis mønsteret er funnet i posten, vil det behandle det. Hvis ikke, blir hele posten matchet for å sikre at noe samsvarer basert på regler.

awk Kommandoeksempler

Nå som vi har god forståelse av awk-kommandoen og hvordan den fungerer, er det nå på tide for oss å sjekke ut noen av awk-kommandoeksemplene.

Hvis du aldri har brukt awk før, vil du kanskje vite at awk kan brukes med alternativer som nedenfor:

awk opsjoner programfil

Alternativene du kan bruke med awk inkluderer følgende:

Eksempel 1: Les AWK-skript

En av de vanligste måtene å bruke awk er å lese manus. Som Linux-bruker kan du opprette et awk-skript ved hjelp av de enkelte anførselstegnene.

For å gjøre det, må du skrive følgende kommando i terminalen.

$ awk 'print "Welcome to Hello, World - AWK tutorial"'

I eksemplet ovenfor, hva du skriver, blir det returnert til selve skjermen. Kommandoen vil fortsette å kjøres til du avslutter den ved å trykke CTRL + D.

Eksempel 2: Bruke flere kommandoer

En annen vanlig bruk av awk er å bruke flere kommandoer. Som bruker kan det være lurt å kombinere to awk-kommandoer i en for å få ønsket resultat. I dette eksemplet vil vi sende en streng og deretter erstatte det andre ordet i strengen med ny inngang.

$ echo "Hello World" | awk '$ 2 = "Univers; skriv ut $ 0"'

I eksemplet ovenfor ekko vi først "Hello, World" til terminalen. Deretter sammenkoblet vi en annen awk-kommando hvor vi erstattet det andre ordet med Universe - og deretter endelig utstrengen, som er Hello Universe.

Eksempel 3: Bruke variabel

Variabler lar deg lagre informasjon og få tilgang til dem. Hvis du har brukt programmeringsspråk før, vet du sikkert om dem. I tilfelle awk bruker du den til å behandle tekstfiler. Ved hjelp av variablene kan du få tilgang til visse datafelter i filen, som nedenfor.

For dette formålet opprettet vi en ny tekstfil, mynewfile, der vi legger inn noen tilfeldige, men vakre linjer.

Deretter må du kjøre kommandoen, som vist nedenfor.

awk 'print $ 1' mynewfile

Som du ser, sender den ut den aktuelle variabelen som viser det feltet fra filen. Du bør også se feilen jeg gjorde.

Eksempel 4: AWK forbehandling

Med awk-kommandoen kan du legge til forhåndsbehandling. For å gjøre dette må du bruke BEGIN-nøkkelordet.

Hvis du leser nøye, opprettet vi en ny fil ovenfor. La oss prøve å bruke awk forbehandling til å vise innholdet i filen.

Kommandoen for det er som nedenfor.

awk 'awk BEGIN print "Innholdet i filen:"> print $ 0', mynewfile

Skjermbildet ovenfor er ikke riktig. Jeg brukte "Begin" i stedet for "BEGIN", og det er derfor du ikke ser utskriftserklæringen utføre. Jeg lar dette være for deg å prøve og se hvordan resultatet ditt går!

Eksempel 5: Leser skript fra fil

Denne er vanskelig. Her kan du bruke awk-skriptet til å lese en fil.

Vi oppretter et nytt skript som inneholder følgende.

print $ 1 "univers starter fra" $ 6 "

Vi lagret filen som et avis.

Kjør nå følgende kommando på terminalen.

$ awk -F: -f nyhetsskrift / etc / passwd

Fascinerende, ikke sant!

Eksempel 6: AWK etterbehandling

Deretter tar vi en titt på AWK etterbehandling. Det fungerer som forbehandling, men denne gangen bruker etterbehandling END-kommandoen.

$ awk 'BEGIN print "Filinnholdet starter nå:">> print $ 0>> END print "The File ends"' mynewfile

Eksempel 7: Brukerdefinerte variabler

Du kan også bruke variabler i kommandoen awk uten å bruke et tall eller dollartegn.

Nedenfor er et eksempel.

$ awk 'BEGIN test = "Velkommen til FossLinux Awesome Linux Family" utskriftstest'

Eksempel 8: Innebygde funksjoner

Awk-kommandoene kommer også godt med deres innebygde funksjoner. For eksempel kan du bruke matematiske funksjoner og så vel som strengfunksjoner.

$ awk 'BEGIN x - "fossLinux"; utskriftstopper (x) '
$ awk 'BEGIN x = exp (35); skriv ut x '

Eksempel 9: Formatering av utskrift

Du kan også formatere printf-funksjonen som følger med awk. Det er mange modifikatorer du kan bruke. For eksempel kan du bruke c til å skrive ut som en streng; Du kan også bruke d for et heltall, og så videre.

$ awk 'BEGIN x = 200 * 200 printf "Resultatet er:% e \ n", x'

Eksempel 10: Strukturerte kommandoer

Du kan også bruke strukturerte kommandoer som hvis, annet, mens eller for loop. La oss se eksemplet nedenfor for if-kommandoen.

$ awk 'if ($ 1> 20) skriv ut $ 2' minewfile

Konklusjon

Dette fører oss til slutten av vår awk-kommandoveiledning. Så, syntes du det var nyttig, og skal du bruke det til arbeidet ditt?? Kommenter nedenfor og gi oss beskjed.

Beste spillkonsollemulatorer for Linux
Denne artikkelen vil liste opp populære programvare for spillkonsollemulering tilgjengelig for Linux. Emulation er et programvarekompatibilitetslag so...
Beste Linux Distros for spill i 2021
Linux-operativsystemet har kommet langt fra det originale, enkle, serverbaserte utseendet. Dette operativsystemet har forbedret seg enormt de siste år...
Hvordan fange opp og streame spilløkten din på Linux
Tidligere ble spill bare ansett som en hobby, men med tiden så spillindustrien en enorm vekst når det gjelder teknologi og antall spillere. Spillpubli...