Awk

10 Awesome Awk Command Exempel

10 Awesome Awk Command Exempel
Awk-kommandot är ett kraftfullt verktyg för att bearbeta data. Den får inmatad data, manipulerar den och ger resultat i standardutdata. Olika operationer kan utföras på rader och kolumner i en fil.

Att känna till det väsentliga med kommandot "awk" är mycket viktigt när det gäller att bearbeta data effektivt, och det här inlägget täcker de viktigaste funktionerna i kommandot "awk". Låt oss kolla syntaxen först:

$ awk [alternativ] [fil]

Några av de vanliga alternativen ges i tabellen nedan:

Alternativ Beskrivning
-F För att ange en filavgränsare
-f Ange filen som innehåller “awk” -skriptet
-v Att tilldela variabel

Låt oss ta en titt på några exempel om användningen av kommandot "awk", och för demonstration har jag skapat en textfil med namnet testFile.Text:

1. Hur man skriver ut en kolumn med en fil med kommandot awk?

Kommandot "awk" kan användas för att få en specifik kolumn i textfilen. Så här skriver du ut filinnehållets innehåll:

$ cat testFile.Text

För att skriva ut den andra kolumnen i filen, använd nu:

$ awk 'print $ 2' testFile.Text

För att skriva ut mer än ett fält, använd kommandot:

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

Om du inte använder kommatecknet “,” kommer utmatningen att vara utan mellanslag:

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

2. Hur man använder reguljärt uttryck med awk-kommando:

För att matcha strängarna eller något annat uttryck använder vi snedstreck "//", till exempel om du vill skriva ut namnen på personer som studerar "Historia", använd sedan:

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

Resultatet visar tydligt att endast “Sam” och “Tommy” studerar ”Historia” -kursen.

3. Hur man använder relationsuttrycket med kommandot "awk":

För att matcha innehållet i ett visst fält kan relationsuttryck användas. För att matcha alla strängar eller uttryck mot ett fält, ange fältet och använd jämförelsen “~” med mönstret som visas i följande kommando:

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

Ovanstående utdata visar varje fält i kolumn 2 mot varje fält som innehåller “är” i kolumn 3.

Och för att få motsatt utdata från ovanstående kommando, använd “! ~ ”Operatör:

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

För jämförelse kan vi också använda operatörer som större än “>” och mindre än “<” and equal “=” as well:

$ awk '$ 4> 70 skriv ut $ 2' testFile.Text

Produktionen har skrivit ut namnen på personer som fick mer än 70 poäng.

4. Hur man använder intervallmönster med awk-kommando:

Ett intervall kan också användas för sökning; använd bara komma "," för att separera intervallet som presenteras i kommandot nedan:

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

Utgången visar ämnena i intervallet från "Joel" till "Marlene" från kolumn 2. Vi kan använda det dubbla likhetstecknet “==” för att definiera ett intervall; se exemplet nedan:

$ awk '$ 4 == 80, $ 4 == 90 skriv ut $ 0' testFile.Text

Utgången visar namnen på personerna från kolumn 2 för markeringsområdet "70 till 80" från kolumn 4.

5. Så här kombinerar du mönster med logisk operator:

Användningen av logiska operatorer som ELLER “||,” OCH “&&” gör att du kan kombinera mönster för sökning. Använd följande kommando

$ awk '$ 4> 80 && $ 6> 0.4 skriv ut $ 2 testFile.Text

Ovanstående kommando skriver ut folks namn mot det fjärde fältet som är mer betydelsefullt än 80 och det sjätte fältet större än 0.4. Och bara två poster uppfyller villkoret.

6. Awk-kommandot speciella uttryck:

Det finns två speciella uttryck, ”BÖRJA”Och”SLUTET”:

BÖRJA: Att utföra en åtgärd innan data bearbetas

SLUT: Att utföra en åtgärd efter att data har bearbetats

$ awk 'BEGIN print "Processing has started"; skriv ut $ 2; END print “Bearbetningen har avslutats” 'testFile.Text

7. Den användbara inbyggda variabeln för awk-kommandot:

Kommandot awk har olika variabler som hjälper till vid databearbetning:

Variabel Beskrivning
NF Det ger antalet fält i data
NR Det ger numret på den aktuella posten
FILNAMN Visar namnet på filen som för närvarande behandlas
FS och OFS Fältavgränsare och utmatningsfältavgränsare
RS och ORS Separerar post och Output Record Separator

Till exempel:

$ awk 'END print "Filnamnet är" FILENAME "har" NF "fält och" NR "registrerar" testFile.Text

Vi använder “END”, men om du använder “BEGIN” skulle utgången ge 0 fält och 0 poster.

8. Så här ändrar du postavgränsaren:

Standardavgränsaren i posten är vanligtvis mellanslag; om det finns kommatecken, "eller".”Som din fältseparator, använd sedan alternativet“ FS ”tillsammans med avgränsaren.

Låt oss ha en annan fil där datafält är åtskilda av kommatecken ":":

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

Eftersom filens separator är ett kolon, men kommandot "awk" till och med fördelaktigt för filerna som denna, använder du bara alternativet "FS".

“-F” kan också användas:

$ awk -F “:” 'skriv ut $ 2' testFile2.Text

Standardpostavskiljaren är "newline" och för att ställa in postavgränsaren på ":", använd:

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

9. Awk-åtgärder:

Awk-åtgärder är små program som omges av "" parenteser och har mer än ett uttalande åtskilda av halvkolon ";".

Det mest använda uttalandet med kommandot "awk" är "skriv ut". Om du till exempel vill skriva ut en text med varje post använder du textsträng i citattecken:

$ awk '"Det är ett fält," $ 2' testfil.Text

Låt oss utföra en enkel summanövrering med awk:

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

10. Skapa ett awk-program:

Låt oss börja med "awk" -programmeringen, programmeringen nedan gör helt enkelt multiplikation:

BÖRJA
i = 2
medan (j<4)

skriva ut "Multiplikationen av 2 med" j "är" i * j;
j++

Spara programmet med namnet “myCode.awk”Och för att köra den, öppna terminalen och skriv:

$ awk -f myCode.awk

Slutsats:

Kommandot "awk" är ett praktiskt kommando för att bearbeta, skanna data för textfiler, såsom att separera ett visst fält i en fil; vi använder kommandot "awk". Det gör det lättare att söka vad som helst i valfri form eller mönster från textfilerna. I den här guiden förstår vi grunderna i kommandot "awk" och dess användning. Kommandot "awk" validerar data, genererar rapporter och till och med analyserar filer. Med hjälp av enkla kommandon "awk" kan användare också skriva små program för att bearbeta data mer effektivt.

Mus Så här ändrar du muspekare och markörstorlek, färg och schema på Windows 10
Så här ändrar du muspekare och markörstorlek, färg och schema på Windows 10
Muspekaren och markören i Windows 10 är mycket viktiga aspekter av operativsystemet. Detta kan också sägas för andra operativsystem, så i sanning är d...
Gratis och öppen källkodsmotorer för utveckling av Linux-spel
Den här artikeln kommer att täcka en lista över gratis motorer med öppen källkod som kan användas för att utveckla 2D- och 3D-spel på Linux. Det finns...
Shadow of the Tomb Raider for Linux Tutorial
Shadow of the Tomb Raider är det tolfte tillskottet till Tomb Raider-serien - en action-äventyrsspelfranchise skapad av Eidos Montreal. Spelet mottogs...