Å 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.