Awk

10 fantastiske eksempler på Awk Command

10 fantastiske eksempler på Awk Command
Awk-kommando er et kraftfuldt værktøj til at behandle data. Det får inputdata, manipulerer det og giver resultater i standardoutput. Forskellige operationer kan udføres på rækker og kolonner i en fil.

At kende det væsentlige ved kommandoen "awk" er meget vigtig, når det gælder effektiv behandling af data, og dette indlæg dækker nøglefunktionerne i kommandoen "awk". Lad os først kontrollere syntaksen:

$ awk [optioner] [fil]

Nogle af de almindeligt anvendte muligheder findes i nedenstående tabel:

Mulighed Beskrivelse
-F For at specificere en filadskiller
-f Angiv den fil, der indeholder scriptet "awk"
-v For at tildele variabel

Lad os se på nogle eksempler om brugen af ​​kommandoen “awk”, og til demonstration har jeg lavet en tekstfil ved navn testFile.txt:

1. Sådan udskrives en kolonne i en fil med kommandoen awk?

Kommandoen “awk” kan bruges til at hente en bestemt kolonne i tekstfilen. Sådan udskrives indholdet af filbrug:

$ cat testFile.txt

Brug nu for at udskrive den anden kolonne i filen:

$ awk 'print $ 2' testFile.txt

Brug kommandoen til at udskrive mere end et felt:

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

Hvis du ikke bruger kommaet “,” vil output være uden mellemrum:

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

2. Sådan bruges regulært udtryk med awk-kommando:

For at matche strengene eller ethvert udtryk bruger vi skråstreger "//", hvis du f.eks. Vil udskrive navnene på personer, der studerer "Historie", så brug:

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

Resultatet viser tydeligt, at kun "Sam" og "Tommy" studerer "Historie" -kurset.

3. Sådan bruges relationsudtrykket med kommandoen "awk":

For at matche indholdet af et bestemt felt kan relationelt udtryk bruges. For at matche en hvilken som helst streng eller et udtryk mod et felt, skal du angive feltet og bruge sammenligningsoperatoren "~" med mønsteret som vist i følgende kommando:

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

Ovenstående output viser hvert felt i kolonne 2 mod hvert felt, der indeholder “er” i kolonne 3.

Og for at få det modsatte output af ovenstående kommando skal du bruge “! ~ ”Operatør:

$ awk '$ 3! ~ / is / print $ 2 'testFile.txt

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

$ awk '$ 4> 70 print $ 2' testFile.txt

Outputtet har udskrevet navnene på personer, der fik karakterer på mere end 70.

4. Sådan bruges områdemønster med awk-kommando:

Et interval kan også bruges til søgning; brug bare kommaet “,” til at adskille området som præsenteret i nedenstående kommando:

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

Outputtet viser emnerne i intervallet fra “Joel” til “Marlene” fra kolonne 2. Vi kan bruge det dobbelte lighedstegn “==” til at definere et interval; se eksemplet nedenfor:

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

Outputtet viser navnene på personer fra kolonne 2 for rækkevidden af ​​mærker “70 til 80” fra kolonne 4.

5. Sådan kombineres mønster ved hjælp af logisk operator:

Brugen af ​​logiske operatorer som ELLER “||” OG “&&” giver dig mulighed for at kombinere mønstre til søgning. Brug følgende kommando

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

Ovenstående kommando udskriver folks navne mod det fjerde felt med større betydning end 80 og det sjette felt større end 0.4. Og kun to poster opfylder betingelsen.

6. Awk kommandoen specielle udtryk:

Der er to specielle udtryk, “BEGYNDE”Og“ENDE”:

BEGIN: At udføre en handling, før data behandles

SLUT: At udføre en handling, når dataene er behandlet

$ awk 'BEGIN print "Processing is started"; udskriv $ 2; END print "Processing is ended" 'testFile.txt

7. Den nyttige indbyggede variabel i awk-kommando:

Kommandoen awk har forskellige variabler, der hjælper med databehandling:

Variabel Beskrivelse
NF Det giver antallet af felter i dataene
NR Det giver nummeret på den aktuelle post
FILNAVN Viser navnet på den fil, der aktuelt behandles
FS og OFS Feltadskiller og outputfeltudskiller
RS og ORS Adskiller posten og Output Record Separator

For eksempel:

$ awk 'END print "Filnavnet er" FILENAME "har" NF "felter og" NR "registrerer"' testFile.txt

Vi bruger "END", men hvis du bruger "BEGIN", vil output give 0 felter og 0 poster.

8. Sådan ændres pladeseparatoren:

Standardseparatoren i posten er normalt mellemrum; hvis der er komma “,” eller prik “.”Som din feltudskiller, og brug derefter indstillingen“ FS ”sammen med separatoren.

Lad os have en anden fil, hvor datafelter er adskilt af komma-kolon ":":

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

Da filens separator er et kolon, men kommandoen “awk” endda er gavnlig for filerne som denne, skal du blot bruge “FS” -indstillingen.

“-F” kan også bruges:

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

Standardpladeseparatoren er "newline", og for at indstille pladeseparatoren til ":" skal du bruge:

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

9. Awk-handlinger:

Awk-handlinger er små programmer, der er omgivet af "" parenteser og har mere end en sætning adskilt af semikolon ";".

Den mest anvendte sætning med kommandoen "awk" er "print" -erklæringen. Hvis du f.eks. Vil udskrive en tekst med hver post, skal du bruge tekststreng i anførselstegn:

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

Lad os udføre en simpel sumoperation ved hjælp af awk:

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

10. Oprettelse af et awk-program:

Lad os begynde med "awk" programmering, programmeringen nedenfor er simpelthen multiplikation:

BEGYNDE
i = 2
mens (j<4)

udskriv "Multiplikationen af ​​2 med" j "er" i * j;
j++

Gem programmet med navnet “myCode.akavet”Og for at køre det skal du åbne terminalen og skrive:

$ awk -f myCode.akavet

Konklusion:

Kommandoen "awk" er en praktisk kommando til at behandle, scanne data for tekstfiler, såsom at adskille et bestemt felt i en fil; vi bruger kommandoen "awk". Det gør det lettere at søge på noget i enhver form eller mønster fra tekstfilerne. I denne vejledning forstår vi det grundlæggende i kommandoen “awk” og dens anvendelse. Kommandoen “awk” validerer data, genererer rapporter og analyserer endda filer. Brug af enkle kommandoer "awk" gør det også muligt for brugere at skrive små programmer for at behandle data mere effektivt.

Bedste spilkonsolemulatorer til Linux
Denne artikel viser en liste over populære spilkonsolemuleringssoftware, der er tilgængelig til Linux. Emulation er et softwarekompatibilitetslag, der...
Bedste Linux Distros til spil i 2021
Linux-operativsystemet er kommet langt fra dets originale, enkle, serverbaserede udseende. Dette operativsystem er forbedret enormt i de senere år og ...
Sådan registreres og streames din gaming-session på Linux
Tidligere blev spil kun betragtet som en hobby, men med tiden oplevede spilindustrien en enorm vækst med hensyn til teknologi og antallet af spillere....