Topp 10 interessante AWK -kommandoer

Topp 10 interessante AWK -kommandoer
Denne artikkelen vil kjøre deg gjennom noen interessante AWK -kommandoer og når du skal bruke dem. Les videre for å finne ut av!

Introduksjon til AWK

AWK er et populært språk i Unix og Linux. Det fikk navnet sitt fra forfatterne: Alfred Aho, Peter Weinberger og Brian Kernighan. AWK -kommandoen gir tilgang til AWK -programmeringsspråket, som er designet for å behandle data innen tekststrømmer.

AWK er populært brukt til skanningsmønstre og forenkle komplekse operasjoner, og hjelper deg med å skrive effektive utsagn for å definere tekstmønstre i en fil. AWK -kommandoen behandler deretter disse uttalelsene ved å lese en linje om gangen og tar en handling basert på tilstanden som er gitt.

Enkelt sagt finner AWK og erstatter tekst, og hjelper til med å sortere, validere eller indeksere de gitte dataene.

Funksjoner av AWK

AWK kommer med mange unike funksjoner:

  1. Ingen samling er nødvendig i AWK
  2. Ofte brukt til datautvinning
  3. Ofte brukt til å utføre tekstmanipulering
  4. Hjelper til med å generere resultater etter behov.

La oss nå utforske kraften til AWK -kommandoene.

15 interessante AWK -kommandoer

Her er en samlet liste over noen interessante AWK -kommandoer:

  1. Skrive ut tilfeldige tall i et sett - Anta at du vil skrive ut noen få tilfeldige tall fra et valgt basseng. Du kan spesifisere mengden tilfeldige tall fra dette bassenget og be AWK om å skrive ut dette. Her er et eksempel: La oss skrive ut 10 tall fra 0 til 1000. Så AWK -kommandoen for dette vil være som følger: awk 'Begynn for (i = 1; i <= 10; i++)
    skriv ut int (1001 * rand ()) '
  1. Søker etter foo eller bar - Hva om du vil skrive en linje der du vil utføre et enkelt søk etter foo eller bar? Her er en kommando som lar deg gjøre nettopp det: hvis (/foo/||/bar/)
    trykk "funnet!""
  1. Omorganisere et felt - Hvis du vil skrive ut et bestemt felt i en bestemt rekkefølge, kan AWK gjøre det for deg. Anta at du vil skrive ut de første 5 feltene i et bestemt sett i ett felt per linje, du kan bruke følgende kommando: awk 'i = 1
    mens jeg <= 3)
    Skriv ut $ i
    Jeg++

    'inputfile
  1. Deling en linje - I et gitt sett med filer kan AWK bidra til å dele en linje i felt, der X er navnet på feltet: $ awk 'print $ x, $ x' xyz.tekst
  1. Kjører flere kommandoer samtidig - For å kjøre flere kommandoer samtidig, kan du bruke en semikolon for å spesifisere begge kommandoene: $ ekko "God morgen! Jack "| awk '$ 2 =" Jill "; skriv ut $ 0'
  1. Utføre et AWK -skript - Hvis du vil utføre et AWK -skript fra en bestemt fil, kan du opprette en fil SUM_COLUMN og lime inn skriptet nedenfor i den filen: #!/usr/bin/awk -f
    Begynn sum = 0
    sum = sum+$ x
    Slutt Print Sum

    I skriptet ovenfor tilsvarer X kolonnen du trenger å legge inn i filen. Når du er vellykket gjennomføring av denne oppgaven, kan du bruke følgende kommando til å vise summen av x -kolonnen i inndatafilen:

    awk -f sum_column input_file.
  1. Bruker -f - Når koding kan det ofte virke upraktisk å referere til terminalen. AWK bruker -F for å utføre søk fra en fil: AWK -f -skript.awk inputfile
  1. Utføre matematikkfunksjoner - Du kan også bruke AWK til enkle matematikkfunksjoner: AWK 'sum = $ 2 + $ 3 + $ 4; AVG = sum / 3
    > Skriv ut $ 1, AVG 'karakterer
  1. Hei verden i awk - Du kan skrive ut en enkel Hello World i AWK ved hjelp av følgende kommando: AWK "Begynn Print" Hello World!!""

    Du kan også lage et Hello World -program. Følgende kode vil ikke bare skrive ut allestedsnærværende Hello -meldingen, men vil også generere overskriftsinformasjon:

    $ awk 'Begynn trykk "Hello World!" '
  1. Skrive ut det totale antallet byte - Du kan finne ut de totale byte som brukes av filer ved hjelp av følgende kommando: ls -l . | awk 'x += $ 5; SLUTT \
    Skriv ut "Total byte:" X '
    Totalt byte: 7449362
  1. Anonymisering av en Apache -log - Du kan bruke følgende kode til å anonymisere en Apache-log: Cat Apache-Anon-Noadmin.logg | \
    awk 'funksjon ri (n) \
    return int (n*rand ()); \
    Begynn Srand (); if (! \
    ($ 5 i Jack)) \
    Jack [$ 5] = Sprintf ("%D.%d.%d.%d ", \
    RI (255), RI (255) \
    , RI (255), RI (255)); \
    $ 5 = Jack [$ 5]; skriv ut __g5_token5b610ba53dbe4 '
  1. Opererer i rader - Hvis du har en adresse du vil sortere i rader, kan du gjøre det ved å bruke følgende kommando: begynn rs = ""; Fs = "\ n"

    Skriv ut "Navnet er:", $ 1
    Skriv ut "adresse er:", $ 2
    Skriv ut "By og stat er:", $ 3
    skrive ut ""
  1. Bruker mens loop - Mens sløyfen fortsetter å utføre handlingen gitt til den i en gjentatt prosess til tilstanden er sann. For å skrive ut tall fra 1 til 100, kan du for eksempel bruke følgende kode: awk 'Begynn i = 1; mens jeg < 100) print i; ++i '
  1. Bruke do-mens Loop - I denne sløyfen blir tilstanden utført på slutten av løkken selv om uttalelsen er falsk. For å skrive ut tall fra 1 til 100 ved hjelp av en do-mens du for eksempel kan du bruke følgende kode: awk 'Begynn i = 1; do print i; ++ i mens (jeg < 100) '
  1. Bruker begynn og slutt - Begynnende nøkkelord brukes til å lage en overskrift for å behandle posten din: $ awk 'begynn print "xxx"

    På samme måte brukes sluttnøkkelordet etter behandling av dataene:

    Slutt skriv ut "Filfoten" '

Dette avslutter listen over 15 interessante AWK -kommandoer. Du kan prøve disse og se resultatene. Håper du synes det er nyttig. Hvis du fant denne artikkelen interessant, kan du utforske Mastering Linux Shell Scripting - Second Edition. I denne boken vil du oppdage alt du trenger å vite for å mestre skallskripting og ta informerte valg om elementene du bruker.