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ÖRJAi = 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.awkSlutsats:
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.