Lär dig Linux

Linux awk-kommando med 10 exempel

Linux awk-kommando med 10 exempel

Datorsystem har alltid använts för att analysera värdefull information som lagras i enkla textfiler. I sin tur hanteras själva datorsystemen genom loggfiler. Vad som är vanligt i dessa två situationer är att de innehåller en stor mängd data, som ofta behöver strömlinjeformas innan de faktiskt läser data; annars är det bara förvirrande.

Om du till exempel läser en del data ordnade i tabellform, vill du ha några kolumner, du vill inte ha andra.

Detta krav var svårt redan på dagen, och därför har GNU-projektet ett fantastiskt verktyg som hjälper användare att filtrera och extrahera data för en bättre upplevelse. Det verktyget är AWK.

Historia

AWK är faktiskt ett programmeringsspråk som är tillägnad textbehandling. Den används för extraktion av data i specifika mönster. Det utvecklades på 1970-talet av Bell Labs, av Alfred Aho, Peter Weinberger och Brian Kernighan (deras efternamn initialer födde namnet). Utvecklingen av awk stoppade inte där. En ny version introducerades 1985, som medförde nya ändringar i awk-kommandot, inklusive möjligheten att hantera flera ingångsströmmar, beräknade reguljära uttryck, användardefinierade funktioner och mycket mer! Kort sagt gjorde uppdateringen det till ett kraftfullare programmeringsspråk.

Awk har en annan implementering. För att säkerställa att det finns en korrekt implementering som erbjuder en standardmetod skrev Paul Rubin gawk 1986. Det fungerade bra med det nyare awk.

Bortsett från det, 1989 System V Release, tillkom nya funktioner. Utvecklarna förbättrade också sina mörka hörn, vilket gjorde det bättre för programmerare och användare att använda den. Den senaste förändringen hände 1997 när awk såg nätverksåtkomst - vilket gav användarna möjlighet att fjärrlösa problem.

Den senaste omskrivningen gjordes 2011 när John Haque skrev om gawk-internerna.

Saker du kan göra med AWK

Vid det här laget bör det vara klart vad AWK kan. Det är ett allmänt skriptspråk som låter dig hantera textbehandling. Avancerade användare kan också använda den för analys och rapportering.

AWK är inte som andra programmeringsspråk eftersom det är datadrivet snarare än ett procedurellt programmeringsspråk. Det betyder att du effektivt kan använda den för att utföra åtgärder mot textinmatning. Kort sagt, du kan använda den för att omvandla data, mata in dem och även skicka dem som standardutdata.

Kort sagt, du kan använda AWK för att göra enkla operationer som att dela upp varje inmatningsrad i fält, skanna en fil rad för rad, utföra en åtgärd (ar) på matchningslinjer och så vidare! Kommandot awk är också användbart för procedurformaterade rapporter och omvandlar datafiler. Dessutom får du också tillgång till programmeringskonstruktioner som villkorliga & slingor, sträng- och aritmetiska operationer och formatutgångslinjer.

Hur awk fungerar

I det här avsnittet ska vi lära oss hur awk fungerar. Det är viktigt att lära sig att awk har olika implementeringar. För att säkerställa att vi är på samma sida kommer vi att diskutera och använda GNU-implementeringen - som populärt kallas gawk. I de flesta fall är gawken symlinked till awk-tolk.

För att få en god förståelse måste vi först förstå posterna och fälten.

Det är välkänt att awk kan bearbeta textströmmar och datafiler. För att bearbeta data delas ingången i fält och poster. För att säkerställa att awk inte blir överväldigat bearbetas en post vid varje given tidpunkt tills ingångens slut nås. Dessutom delas posterna vidare i enkla sektioner med hjälp av en postavgränsare med tecken. Varje post separeras också med hjälp av newline-tecken. Detta innebär att varje rad kan betecknas som en post.

Du kan välja att ställa in en ny postavgränsare med hjälp av RS-variabeln.

Därefter kommer den arkiverade separatorn. Som vanligt har varje post fält och de separeras med hjälp av fältseparatorn. Fältavgränsaren kan vara mellanrum, flikar, nylinjetecken och mellanslag. Dessutom refereras till varje fält med symbolen $, medan fältnumret börjar med 1. Detta innebär att det första fältet kan betecknas som $ 1 medan det andra fältet betecknas som $ 2. På detta sätt kan det nte fältet betecknas som $ nf.

Det awk-programmet

Den andra aspekten av awk är awk-programmet. Om du vill arbeta med awk måste du skriva ett program som låter kommandot köra eller bearbeta texten. Awk-programmet erbjuder mycket funktionalitet med hjälp av regler och användardefinierade funktioner. Reglerna fungerar med åtgärdspar eller ett mönster, och reglerna separeras med hjälp av halvkolon eller newline.

Om du undrar kommer ett awk-program att se ut nedan.

mönster action mönster action .. 

Kort sagt fungerar awk-programmet efter att matcha posterna baserat på mönster. Om mönstret finns i posten kommer det att bearbetas. Om inte, matchas hela posten för att se till att något matchar baserat på regler.

awk Kommandoexempel

Nu när vi har en god förståelse för awk-kommandot och hur det fungerar är det nu dags för oss att kolla in några av awk-kommandoexemplen.

Om du aldrig har använt awk förut kanske du vill veta att awk kan användas med alternativ som nedan:

awk option programfil

Alternativen som du kan använda med awk inkluderar följande:

Exempel 1: Läs AWK-skript

Ett av de vanligaste sätten att använda awk är att läsa manus. Som Linux-användare kan du skapa ett awk-skript med hjälp av de enskilda offertmarkörerna.

För att göra det måste du skriva följande kommando i terminalen.

$ awk 'print "Välkommen till Hello, World - AWK-handledning"'

I exemplet ovan, vad du skriver, kommer det att returneras till själva skärmen. Kommandot fortsätter att köras tills du avslutar det genom att trycka på CTRL + D.

Exempel 2: Använda flera kommandon

En annan vanlig användning av awk är att använda flera kommandon. Som användare kanske du vill kombinera två awk-kommandon till ett för att få önskat resultat. I det här exemplet kommer vi att mata ut en sträng och sedan ersätta det andra ordet i strängen med ny ingång.

$ echo "Hello World" | awk '$ 2 = "Universe; skriv ut $ 0"'

I exemplet ovan ekade vi först ”Hello, World” till terminalen. Därefter sammanfogade vi ytterligare ett awk-kommando där vi ersatte det andra ordet med Universe - och sedan slutligen matade ut strängen, som är Hello Universe.

Exempel 3: Använd variabel

Med variabler kan du lagra information och komma åt dem. Om du har använt programmeringsspråk tidigare vet du säkert om dem. I händelse av awk använder du den för att bearbeta textfiler. Med hjälp av variablerna kan du komma åt vissa datafält i filen precis som nedan.

För detta ändamål skapade vi en ny textfil, mynewfile, där vi matar in några slumpmässiga men vackra rader.

Därefter måste du köra kommandot, som visas nedan.

awk 'print $ 1' minewfile

Som du kan se matar den ut den variabeln som visar det fältet från filen. Du bör också se felet som jag gjorde.

Exempel 4: AWK förbehandling

Med kommandot awk kan du lägga till förbehandling. För att göra detta måste du använda nyckelordet BÖRJA.

Om du läser noga skapade vi en ny fil ovan. Låt oss försöka använda awk förbehandling för att visa upp innehållet i filen.

Kommandot för det är som nedan.

awk 'awk BEGIN print "Innehållet i filen:"> print $ 0', mynewfile

Ovanstående skärmdump är inte korrekt. Jag använde "Börja" istället för "BEGIN", vilket är anledningen till att du inte ser att utskriftsuttrycket körs. Jag lämnar detta åt dig att prova och se hur ditt resultat går!

Exempel 5: Läsa skript från fil

Den här är knepig. Här kan du använda awk-skriptet för att läsa en fil.

Vi skapar ett nytt skript som innehåller följande.

skriv ut $ 1 "-universum börjar vid" $ 6 "

Vi sparade filen som ett tidningsskrift.

Kör nu följande kommando på terminalen.

$ awk -F: -f nyhetsskrift / etc / passwd

Fascinerande, eller hur!

Exempel 6: AWK efterbehandling

Därefter tittar vi på AWK efterbehandling. Det fungerar på samma sätt som förbehandling, men den här gången använder efterbehandlingen kommandot END.

$ awk 'BEGIN print "Filinnehållet börjar nu:">> print $ 0>> END print "Filen avslutas" "mynewfile

Exempel 7: Användardefinierade variabler

Du kan också använda variabler i kommandot awk utan att använda ett nummer eller dollartecken.

Nedan följer ett exempel.

$ awk 'BEGIN test = "Välkommen till FossLinux Awesome Linux Family" utskriftstest'

Exempel 8: Inbyggda funktioner

Awk-kommandona kommer också till nytta med sina inbyggda funktioner. Du kan till exempel använda matematiska funktioner och såväl som strängfunktioner.

$ awk 'BEGIN x - "fossLinux"; tryckknapp (x) '
$ awk 'BEGIN x = exp (35); skriv ut x '

Exempel 9: Formatera utskrift

Du kan också formatera den printf-funktion som följer med awk. Det finns många modifierare du kan använda. Du kan till exempel använda c för att skriva ut som en sträng; Du kan också använda d för ett heltal och så vidare.

$ awk 'BEGIN x = 200 * 200 printf "Resultatet är:% e \ n", x'

Exempel 10: Strukturerade kommandon

Du kan också använda strukturerade kommandon som om, annat, medan eller för loop. Låt oss se exemplet nedan för kommandot if.

$ awk 'if ($ 1> 20) skriv ut $ 2' mynewfile

Slutsats

Detta leder oss till slutet av vår tutorial för awk-kommando. Så tyckte du att det var användbart och ska du använda det för ditt arbete? Kommentera nedan och låt oss veta.

Hur man visar FPS-räknare i Linux-spel
Linux-spel fick ett stort tryck när Valve tillkännagav Linux-stöd för Steam-klient och deras spel 2012. Sedan dess har många AAA- och indiespel tagit ...
Hur man laddar ner och spelar Sid Meier's Civilization VI på Linux
Introduktion till spelet Civilization 6 är ett modernt intag av det klassiska konceptet som introducerades i serien Age of Empires-spel. Idén var gans...
Hur man installerar och spelar Doom på Linux
Introduktion till Doom Doom-serien har sitt ursprung på 90-talet efter att den ursprungliga Doom släpptes. Det blev en omedelbar hit och från den tide...