Awk

10 fantastiske eksempler på Awk Command

10 fantastiske eksempler på Awk Command
Awk-kommando er et kraftig verktøy for å behandle data. Den får inndata, manipulerer den og gir resultater i standard utdata. Ulike operasjoner kan utføres på rader og kolonner i en fil.

Å vite det essensielle i "awk" -kommandoen er veldig viktig når det gjelder å behandle data effektivt, og dette innlegget dekker nøkkelegenskapene i "awk" -kommandoen. La oss sjekke syntaksen først:

$ awk [opsjoner] [fil]

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

Alternativ Beskrivelse
-F Å spesifisere en filskiller
-f Spesifiser filen som inneholder "awk" -skriptet
-v Å tilordne variabel

La oss ta en titt på noen eksempler om bruken av "awk" -kommandoen, og for demonstrasjon har jeg laget en tekstfil med navnet testFile.tekst:

1. Hvordan skrive ut en kolonne av en fil med kommandoen awk?

Kommandoen "awk" kan brukes til å hente en bestemt kolonne i tekstfilen. Slik skriver du ut innholdet i filbruken:

$ cat testFile.tekst

Nå, for å skrive ut den andre kolonnen i filen, bruk:

$ awk 'print $ 2' testFile.tekst

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

$ awk 'print $ 1, $ 2, $ 3' testFile.tekst

Hvis du ikke bruker kommaet “,” vil utdataene være uten mellomrom:

$ awk 'print $ 1 $ 2 $ 3' testFile.tekst

2. Slik bruker du vanlig uttrykk med awk-kommando:

For å matche strengene eller et hvilket som helst uttrykk, bruker vi skråstreker "//", hvis du for eksempel vil skrive ut navnene på folk som studerer "Historie", og deretter bruke:

$ awk '/ History / print $ 2' testFile.tekst

Resultatet viser tydelig at bare "Sam" og "Tommy" studerer "Historie" -kurset.

3. Hvordan bruke relasjonsuttrykket med kommandoen "awk":

For å matche innholdet i et bestemt felt, kan relasjonsuttrykk brukes. For å matche hvilken som helst streng eller et uttrykk mot et felt, angir du feltet og bruker sammenligningsoperatøren ~ ~ med mønsteret som vist i følgende kommando:

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

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

Og for å få motsatt utdata fra kommandoen ovenfor, bruk “! ~ ”Operatør:

$ awk $ 3! ~ / is / print $ 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

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

4. Hvordan bruke rekkeviddemønster med awk-kommando:

Et utvalg kan også brukes til søk; bruk bare kommaet "," for å skille området som presenteres i kommandoen nedenfor:

$ awk '/ Joel /, / Marlene / print $ 3' testFile.tekst

Utgangen viser emnene i området fra “Joel” til “Marlene” fra kolonne 2. Vi kan bruke det doble likhetstegnet “==” for å definere et område; se eksemplet nedenfor:

$ awk '$ 4 == 80, $ 4 == 90 print $ 0' testFile.tekst

Utgangen viser navnene på personene fra kolonne 2 for rekkevidden til merkene “70 til 80” fra kolonne 4.

5. Hvordan kombinere mønster ved hjelp av logisk operator:

Bruken av logiske operatorer som ELLER “||”, OG “&&” lar deg kombinere mønstre for søk. Bruk følgende kommando

$ awk '$ 4> 80 && $ 6> 0.4 print $ 2 'testFile.tekst

Ovennevnte kommando skriver ut personnavn mot det fjerde feltet som er mer signifikant enn 80 og det sjette feltet som er større enn 0.4. Og bare to poster oppfyller betingelsen.

6. The awk kommandoen spesielle uttrykk:

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

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

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

$ awk 'BEGIN print “Processing has started”; skriv ut $ 2; END utskrift “Behandlingen er avsluttet” 'testFile.tekst

7. Den nyttige innebygde variabelen for awk-kommando:

Kommandoen awk har forskjellige variabler som hjelper til med databehandling:

Variabel Beskrivelse
NF Det gir antall felt i dataene
NR Det gir nummeret til gjeldende rekord
FILNAVN Viser navnet på filen som behandles for øyeblikket
FS og OFS Feltutskiller og utgangsfeltutskiller
RS og ORS Separerer posten og Output Record Separator

For eksempel:

$ awk 'END print "Filnavnet er" FILENAME "har" NF "felt og" NR "poster"' testFile.tekst

Vi bruker “END”, men hvis du bruker “BEGIN”, vil utdataene gi 0 felt og 0 poster.

8. Slik endrer du plateskilleren:

Standard separator i posten er vanligvis mellomrom; hvis det er komma "," eller ".”Som feltseparator, og bruk deretter“ FS ”-alternativet sammen med separatoren.

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

$ cat testFile2.tekst
$ awk 'BEGIN FS = “:” print $ 2' testFile2.tekst

Siden filens skilletegn er et kolon, men kommandoen “awk” til og med fordelaktig for filene som dette, bruker du bare “FS” -alternativet.

“-F” kan også brukes:

$ awk -F “:” 'print $ 2' testFile2.tekst

Standard plateutskiller er "newline", og for å sette plateseparatoren til ":", bruk:

$ awk 'BEGIN RS = “:” print $ 1' testFile2.tekst

9. Awk-handlinger:

Awk-handlinger er små programmer som er omgitt av "" parenteser og har mer enn ett utsagn atskilt med semikolon ";".

Den mest brukte setningen med "awk" -kommandoen er "print" -uttalelsen. For eksempel, for å skrive ut en tekst med hver post, bruk tekststreng i anførselstegn:

$ awk '"Det er et felt," $ 2' testfil.tekst

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

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

10. Opprette et awk-program:

La oss begynne med “awk” -programmeringen, programmeringen nedenfor gjør ganske enkelt multiplikasjon:

BEGYNNE
jeg = 2
mens (j<4)

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

Lagre programmet med navnet “myCode.kjipt”Og for å kjøre den, åpne terminalen og skriv:

$ awk -f myCode.kjipt

Konklusjon:

Kommandoen "awk" er en praktisk kommando for å behandle, skanne data for tekstfiler, for eksempel å skille et bestemt felt i en fil; vi bruker kommandoen “awk”. Det gjør det lettere å søke hva som helst i hvilken som helst form eller mønster fra tekstfilene. I denne guiden forstår vi det grunnleggende i “awk” -kommandoen og bruken av den. Kommandoen "awk" validerer data, genererer rapporter og til og med analyserer filer. Ved å bruke enkle kommandoer "awk" kan brukerne også skrive små programmer for å behandle data mer effektivt.

Beste kommandolinjespill for Linux
Kommandolinjen er ikke bare din største allierte når du bruker Linux, den kan også være kilden til underholdning fordi du kan bruke den til å spille m...
Beste Gamepad Mapping Apps for Linux
Hvis du liker å spille spill på Linux med en gamepad i stedet for et vanlig tastatur- og musinngangssystem, er det noen nyttige apper for deg. Mange P...
Nyttige verktøy for Linux-spillere
Hvis du liker å spille spill på Linux, er sjansen stor for at du har brukt apper og verktøy som Wine, Lutris og OBS Studio for å forbedre spilloppleve...