Awk

15 Intressanta awk-kommandon

15 Intressanta awk-kommandon
Den här artikeln kommer att leda dig genom några intressanta awk-kommandon och när du ska använda dem. Läs vidare för att ta reda på det!

Introduktion till awk

AWK är ett populärt språk i UNIX och Linux. Det fick sitt namn från dess författare: Alfred Aho, Peter Weinberger och Brian Kernighan. Kommandot awk ger åtkomst till programmeringsspråket AWK, som är utformat för att bearbeta data i textströmmar.

Awk används ofta för att skanna mönster och förenkla komplexa operationer, och hjälper dig att skriva effektiva uttalanden för att definiera textmönster i en fil. Kommandot awk behandlar sedan dessa uttalanden genom att läsa en rad i taget och vidta en åtgärd baserat på det angivna villkoret.

Enkelt uttryckt, awk hittar och ersätter text och hjälper till att sortera, validera eller indexera de angivna uppgifterna.

Funktioner i AWK

awk har många unika funktioner:

  1. Ingen sammanställning är nödvändig i awk
  2. Används ofta för datautvinning
  3. Vanligtvis används för att utföra textmanipulation
  4. Hjälper till att generera resultat efter behov.

Låt oss nu utforska kraften i awk-kommandona.

15 Intressanta awk-kommandon

Här är en sammanställd lista med några intressanta awk-kommandon:

  1. Skriva ut slumptal i en uppsättning - Antag att du vill skriva ut några slumpmässiga nummer från en vald pool. Du kan ange antalet slumpmässiga nummer från denna pool och be awk att skriva ut detta. Här är ett exempel: låt oss skriva ut 10 nummer från 0 till 1000. Så kommandot awk för detta kommer att vara följande: awk 'BEGIN for (i = 1; i <= 10; i++)
    skriv ut int (1001 * rand ()) '
  1. Söker efter foo eller bar - Vad händer om du vill skriva en rad där du vill utföra en enkel sökning efter foo eller bar? Här är ett kommando som låter dig göra just det: om (/ foo / || / bar /)
    skriva ut "Hittade!"
  1. Ordna om ett fält - Om du vill skriva ut ett visst fält i en viss ordning kan awk göra det åt dig. Antag att du vill skriva ut de fem första fälten i en viss uppsättning i ett fält per rad, du kan använda följande kommando: awk 'i = 1
    medan jag <= 3)
    skriva ut $ i
    i++

    ' indatafil
  1. Dela en linje - I vilken filuppsättning som helst kan awk hjälpa till att dela en rad i fält där x är fältets namn: $ awk 'print $ x, $ x' xyz.Text
  1. Kör flera kommandon samtidigt - För att köra flera kommandon samtidigt kan du använda ett semikolon för att ange båda kommandona: $ echo "God morgon! Jack "| awk '$ 2 =" Jill "; skriv ut $ 0'
  1. Utför ett awk-skript - Om du vill köra ett awk-skript från en viss fil kan du skapa en fil sum_column och klistra in skriptet nedan i den filen: #!/ usr / bin / awk -f
    BÖRJA sum = 0
    sum = summa + $ x
    SLUT utskriftssumma

    I ovanstående skript motsvarar x kolumnen du behöver mata in i filen. När den här uppgiften har slutförts kan du använda följande kommando för att visa summan av x-kolumnen i inmatningsfilen:

    awk -f sum_column input_file.
  1. Använda -f - Vid kodning kan det ofta verka opraktiskt att hänvisa till terminalen. awk använder -f för att söka från en fil: awk -f-skript.awk inmatningsfil
  1. Utföra matematiska funktioner - Du kan också använda awk för enkla matematiska funktioner: awk 'sum = $ 2 + $ 3 + $ 4; genomsnitt = summa / 3
    > skriv ut betyg på $ 1, genomsnitt
  1. Hej Världen i awk - Du kan skriva ut en enkel Hello World i awk med följande kommando: awk "BEGIN print" Hello World!!""

    Du kan också skapa ett Hello World-program. Följande kod kommer inte bara att skriva ut det allestädes närvarande hejmeddelandet utan kommer också att generera rubrikinformation:

    $ awk 'BEGIN print "Hello World!""
  1. Utskrift av det totala antalet byte - Du kan ta reda på de totala byte som används av filer med följande kommando: ls -l . | awk 'x + = $ 5; SLUTET \
    print "total bytes:" x '
    totalt byte: 7449362
  1. Anonymisering av en Apache-logg - Du kan använda följande kod för att anonymisera en Apache-logg: cat apache-anon-noadmin.logg | \
    awk 'funktion ri (n) \
    Return int (n * rand ()); \
    BÖRJA srand (); om (! \
    ($ 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. Fungerar i rader - Om du har en adress som du vill sortera i rader kan du göra det med följande kommando: BEGIN RS = ""; FS = "\ n"

    skriva ut "Namn är:", $ 1
    skriva ut "Adress är:", $ 2
    skriva ut "Stad och stat är:", $ 3
    skriva ut ""
  1. Med hjälp av while-slingan - While-slingan fortsätter att utföra den åtgärd som ges i en upprepad process tills villkoret är sant. Till exempel, för att skriva ut nummer från 1 till 100 kan du använda följande kod: awk 'BEGIN i = 1; medan jag < 100) print i; ++i '
  1. Använda do-while-slingan - I den här slingan körs villkoret i slutet av slingan även om uttalandet är falskt. Till exempel, för att skriva ut siffror från 1 till 100 med en do-while-loop kan du använda följande kod: awk 'BEGIN i = 1; gör print i; ++ i medan (i < 100) '
  1. Använd BEGIN och END - BEGIN-nyckelordet används för att skapa en rubrik för bearbetning av din post: $ awk 'BEGIN print "XXX"

    På samma sätt används END-nyckelordet efter bearbetning av data:

    SLUT skriv "File footer" '

Detta avslutar listan över 15 intressanta awk-kommandon. Du kan prova dessa och se resultaten. Hoppas du tycker att det är användbart. Om du tyckte att den här artikeln var intressant kan du utforska Mastering Linux Shell Scripting - Second Edition. I den här boken kommer du att upptäcka allt du behöver veta för att behärska skalskriptning och göra välgrundade val om de element du använder.

Mus Emulera musklick genom att sväva med Clickless Mouse i Windows 10
Emulera musklick genom att sväva med Clickless Mouse i Windows 10
Att använda en mus eller tangentbord i fel hållning av överdriven användning kan resultera i många hälsoproblem, inklusive stam, karpaltunnelsyndrom o...
Mus Lägg till musgester i Windows 10 med dessa gratisverktyg
Lägg till musgester i Windows 10 med dessa gratisverktyg
Under senare år har datorer och operativsystem utvecklats kraftigt. Det fanns en tid då användare var tvungna att använda kommandon för att navigera g...
Mus Kontrollera och hantera musrörelser mellan flera skärmar i Windows 10
Kontrollera och hantera musrörelser mellan flera skärmar i Windows 10
Dual Display Mouse Manager låter dig kontrollera och konfigurera musrörelser mellan flera skärmar genom att sakta ner dess rörelser nära gränsen. Wind...