Awk

15 Interessante awk-kommandoer

15 Interessante awk-kommandoer
Denne artikkelen vil lede deg gjennom noen interessante awk-kommandoer og når du skal bruke dem. Les videre for å finne ut!

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. Kommandoen awk gir tilgang til programmeringsspråket AWK, som er designet for å behandle data i tekststrømmer.

Awk brukes ofte til å skanne mønstre og forenkle komplekse operasjoner, og hjelper deg med å skrive effektive utsagn for å definere tekstmønstre i en fil. Awk-kommandoen behandler deretter disse utsagnene ved å lese en linje om gangen og tar en handling basert på gitt tilstand.

Enkelt sagt, awk finner og erstatter tekst, og hjelper til med å sortere, validere eller indeksere gitte data.

Funksjoner i AWK

awk kommer med mange unike funksjoner:

  1. Ingen kompilering er nødvendig i vanskeligheter
  2. Brukes ofte til datautvinning
  3. Vanligvis brukt til å utføre tekstmanipulering
  4. Hjelper 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 tilfeldige tall fra en valgt gruppe. Du kan spesifisere antall 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å kommandoen awk for dette vil være som følger: awk 'BEGIN 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: if (/ foo / || / bar /)
    utskrift "Fant!"
  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 fem første feltene i et bestemt sett i ett felt per linje, du kan bruke følgende kommando: awk 'i = 1
    mens jeg <= 3)
    skrive ut $ i
    Jeg++

    'inputfil
  1. Å dele en linje - I et gitt sett med filer kan awk hjelpe til med å dele en linje i felt, hvor 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 semikolon til å spesifisere begge kommandoene: $ echo "God morgen! Jack "| awk '$ 2 =" Jill "; skriv ut $ 0'
  1. Å utføre et awk-skript - Hvis du vil kjøre et awk-skript fra en bestemt fil, kan du opprette en sum_kolonne for filen og lime inn skriptet nedenfor i den filen: #!/ usr / bin / awk -f
    BEGIN sum = 0
    sum = sum + $ x
    SLUT utskriftssum

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

    awk -f sum_column input_file.
  1. Bruke -f - Ved koding kan det ofte virke upraktisk å referere til terminalen. awk bruker -f for å utføre søk fra en fil: awk -f script.awk inputfile
  1. Utføre matematiske funksjoner - Du kan også bruke awk for enkle matematiske funksjoner: awk 'sum = $ 2 + $ 3 + $ 4; gjennomsnitt = sum / 3
    > skriv ut $ 1, gjennomsnittlig karakterer
  1. Hello World in awk - Du kan skrive ut en enkel Hello World i awk ved å bruke følgende kommando: awk "BEGIN print" Hello World!!""

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

    $ awk 'BEGIN print "Hello World!""
  1. Skriver ut totalt antall byte - Du kan finne ut antall byte som brukes av filer ved å bruke følgende kommando: ls -l . | awk 'x + = $ 5; SLUTT \
    print "total bytes:" x '
    totalt byte: 7449362
  1. Anonymisering av en Apache-logg - Du kan bruke følgende kode for å anonymisere en Apache-logg: cat apache-anon-noadmin.logg | \
    awk 'funksjon ri (n) \
    Return int (n * rand ()); \
    BEGIN 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 som du vil sortere i rader, kan du gjøre det ved å bruke følgende kommando: BEGIN RS = ""; FS = "\ n"

    skriv ut "Navn er:", $ 1
    skriv ut "Adresse er:", $ 2
    trykk "By og stat er:", $ 3
    skrive ut ""
  1. Bruke mens løkken - Mens loop fortsetter å utføre handlingen gitt i en gjentatt prosess til tilstanden er oppfylt. For eksempel, for å skrive ut tall fra 1 til 100, kan du bruke følgende kode: awk 'BEGIN i = 1; mens jeg < 100) print i; ++i '
  1. Bruke do-while-løkken - I denne sløyfen blir tilstanden utført på slutten av sløyfen, selv om utsagnet er falskt. For eksempel, for å skrive ut tall fra 1 til 100 ved hjelp av en gjør-mens-sløyfe, kan du bruke følgende kode: awk 'BEGIN i = 1; gjør print i; ++ i mens (i < 100) '
  1. Bruke BEGIN og SLUT - BEGIN-nøkkelordet brukes til å lage en overskrift for behandling av posten din: $ awk 'BEGIN print "XXX"

    På samme måte brukes END-nøkkelordet etter behandling av dataene:

    SLUT skriv "File footer" '

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 syntes denne artikkelen var interessant, kan du utforske Mastering Linux Shell Scripting - Second Edition. I denne boka vil du oppdage alt du trenger å vite for å mestre skallskripting og ta informerte valg om elementene du bruker.

Installer det siste OpenRA-strategispillet på Ubuntu Linux
OpenRA er en Libre / Free Real Time Strategy-spillmotor som gjenskaper de tidlige Westwood-spillene som den klassiske Command & Conquer: Red Alert. Di...
Installer nyeste Dolphin Emulator for Gamecube & Wii på Linux
Dolphin Emulator lar deg spille de valgte Gamecube- og Wii-spillene dine på Linux Personal Computers (PC). Som en fritt tilgjengelig og åpen kildekod...
Hvordan bruke GameConqueror Cheat Engine i Linux
Artikkelen dekker en guide om bruk av GameConqueror-juksemotoren i Linux. Mange brukere som spiller spill på Windows bruker ofte "Cheat Engine" -appli...