Topp 10 fantastiske AWK -kommandoeksempler

Topp 10 fantastiske AWK -kommandoeksempler
AWK -kommando er et kraftig verktøy for å behandle data. Den får inputdata, manipulerer dem og gir resultater i standardutgang. Ulike operasjoner kan utføres på rader og kolonner i en fil.

Å kjenne det vesentlige i “AWK” -kommandoen er veldig viktig når det gjelder behandling av data effektivt, og dette innlegget dekker nøkkelfunksjonene i “AWK” -kommandoen. La oss sjekke syntaksen først:

$ awk [alternativer] [fil]

Noen av de ofte brukte alternativene er gitt i tabellen nedenfor:

Alternativ Beskrivelse
-F For å spesifisere en filseparator
-f Spesifiser filen som inneholder “AWK” -skriptet
-v For å tilordne variabel

La oss se på noen eksempler på bruken av “AWK” -kommandoen, og for demonstrasjon har jeg laget en tekstfil med navnet på Testfile.tekst:

Hvordan skrive ut en kolonne i en fil med AWK -kommandoen?

Kommandoen “AWK” kan brukes til å få en bestemt kolonne i tekstfilen. For å skrive ut innholdet i filbruk:

$ katt testfile.tekst

For å skrive ut den andre kolonnen i filen, bruk:

$ awk 'print $ 2' testfile.tekst

For å skrive ut mer enn ett felt, bruk kommandoen:

$ awk 'skriv ut $ 1, $ 2, $ 3' testfile.tekst

Hvis du ikke bruker komma "", vil utdataene være uten mellomrom:

$ awk 'skriv ut $ 1 $ 2 $ 3' testfile.tekst

Hvordan bruke vanlig uttrykk med AWK -kommando:

For å matche strengene eller et hvilket som helst uttrykk, bruker vi skråstreker “//”, for eksempel, hvis du vil skrive ut navnene på folk som studerer "historie", så bruk:

$ awk '/ historie/ skriv ut $ 2' testfile.tekst

Produksjonen viser tydelig at bare "Sam" og "Tommy" studerer "historie" -kurset.

Hvordan bruke det relasjonelle uttrykket med “AWK” -kommandoen:

For å matche innholdet i et spesifikt felt, kan relasjonelt uttrykk brukes. For å matche hvilken som helst streng eller uttrykk mot et felt, angi feltet og bruk sammenligningen “~” -operatøren med mønsteret som presentert i følgende kommando:

$ awk '$ 3 ~/ is/ print $ 2' testfile.tekst

Ovennevnte utgang som viser hvert felt i kolonne 2 mot hvert felt som inneholder "er" i kolonne 3.

Og for å få den motsatte output av kommandoen ovenfor, bruk "! ~ ”Operatør:

$ awk '$ 3! ~/ er/ skriv ut $ 2 'testfile.tekst

Til sammenligning kan vi også bruke operatører som større enn ">" og mindre enn "<” and equal “=” as well:

$ awk '$ 4> 70 print $ 2' testfile.tekst

Utgangen har skrevet ut navnene på personer som fikk mer enn 70.

Hvordan bruke rekkevidde mønster med AWK -kommando:

Et område kan også brukes til søk; Bare bruk komma "", for å skille rekkevidden som presentert i den nedenfor-nevnte kommandoen:

$ awk '/joel/,/marlene/skriv ut $ 3' testfile.tekst

Utgangen viser forsøkspersonene i området "Joel" til "Marlene" fra kolonne 2. Vi kan bruke det doble like tegnet “==” for å definere et område; Se eksemplet nedenfor:

$ awk '$ 4 == 80, $ 4 == 90 skriv ut $ 0' testfile.tekst

Utgangen viser navnene på menneskene fra kolonne 2 for området merker “70 til 80” fra kolonne 4.

Hvordan kombinere mønster ved hjelp av logisk operatør:

Bruken av logiske operatører som eller "||" og "&&" lar deg kombinere mønstre for søk. Bruk følgende kommando

$ awk '$ 4> 80 && $ 6> 0.4 skriv ut $ 2 'testfile.tekst

Kommandoen ovenfor skriver ut folkens navn mot det fjerde feltet mer betydningsfulle enn 80 og det sjette feltet større enn 0.4. Og bare to poster oppfyller tilstanden.

AWK -kommandoen spesielle uttrykk:

Det er to spesielle uttrykk, “BEGYNNE”Og“SLUTT”:

Begynn: Å utføre en handling før data blir behandlet

Slutt: For å utføre en handling etter at dataene er behandlet

$ awk 'begynn print “Behandlingen har begynt”; Skriv ut $ 2; Slutt utskrift “Behandlingen er avsluttet” ”Testfile.tekst

Den nyttige innebygde variabelen av AWK-kommandoen:

AWK -kommandoen har forskjellige variabler som hjelper til med databehandling:

Variabel Beskrivelse
Nf Det gir antall felt i dataene
Nr Det gir nummeret på gjeldende post
FILNAVN Viser navnet på filen som for øyeblikket behandles
FS og OFS Feltseparator og utgangsfeltseparator
RS og ORS Skiller post- og utgangsrekordets separator

For eksempel:

$ awk 'slutt skriv ut “Filnavnet er” Filname “har” NF “Fields and” NR “Records” ”Testfile.tekst

Vi bruker "slutt", men hvis du bruker "Begynn", vil utdataene gi 0 felt og 0 poster.

Hvordan endre rekordseparatoren:

Standard separator i posten er vanligvis plass; Hvis det er et komma “,” eller Dot ”.”Som din feltskillelse, bruk deretter alternativet“ FS ”sammen med separatoren.

La oss ha en annen fil der datafelt er atskilt med en komma -kolon “:”:

$ katt testfile2.tekst
$ awk 'begynn fs = “:” skriv ut $ 2' testfile2.tekst

Siden filens separator er en kolon, men "AWK" -kommandoen til og med fordelaktig for filene som dette, kan du bare bruke alternativet "FS".

"-F" kan også brukes:

$ awk -f “:” 'skriv ut $ 2' testfile2.tekst

Standard post separator er "newline", og for å sette rekordseparatoren til ":", bruk:

$ awk 'begynn rs = “:” skriv ut $ 1' testfile2.tekst

Awk handlinger:

AWK-handlinger er bittesmå programmer som er omgitt av "" -fester og har mer enn en uttalelse atskilt med semikoloner ";".

Den mest brukte uttalelsen med “AWK” -kommandoen er “Print” -uttalelsen. For eksempel for å skrive ut en tekst med hver post, bruk tekststreng i sitater:

$ awk '“det er et felt,” $ 2' testfile.tekst

La oss utføre en enkel sumoperasjon ved hjelp av AWK:

$ awk 'sum += $ 4 slutt printf “%d \ n”, sum' testfile.tekst

Opprette et AWK -program:

La oss begynne med "AWK" -programmeringen, programmeringen nedenfor er ganske enkelt å gjøre multiplikasjon:

BEGYNNE
i = 2
mens (j<4)

Skriv ut “Multiplikasjonen av 2 med” J ”er” i*J;
j++

Lagre programmet med navnet "Mycode.awk”Og for å kjøre den, åpen terminal og type:

$ awk -f mycode.awk

Konklusjon:

Kommandoen "AWK" er en hendig kommando for å behandle, skanne data fra tekstfiler, for eksempel å skille et bestemt felt i en fil; Vi bruker “AWK” -kommandoen. Det gjør det lettere å søke på noe i noen form eller mønster fra tekstfilene. I denne guiden forstår vi det grunnleggende om “AWK” -kommandoen og bruken av den. Kommandoen “AWK” validerer data, genererer rapporter og til og med parses -filer. Å bruke enkle kommandoer “AWK” gjør det også mulig for brukere å skrive bittesmå programmer for å behandle data mer effektivt.