Awk

Hur man använder variabel i awk-kommando

Hur man använder variabel i awk-kommando
Variabler används för att lagra alla temporära värden i vilket programmeringsspråk som helst.  Definiera variabeln i awk-kommando liknar bash-skriptspråk och det fungerar som bash när skalvariabeln används med ett enda citat och dubbelt citat. Awk-kommandot har många inbyggda variabler för olika ändamål. Hur användardefinierade, inbyggda och skalvariabler kan användas i awk-kommando visas i denna handledning med hjälp av olika exempel.

Eexempel -1: Definiera och skriva ut variabel

kommandot 'awk' använder alternativet '-v' för att definiera variabeln. I detta exempel är myvar variabel definieras i kommandot 'awk' för att lagra värdet, “AWK-variabel” som skrivs ut senare. Kör följande kommando från terminalen för att kontrollera utdata.

$ eko | awk -v myvar = 'AWK-variabel' 'print myvar'

Produktion:

Exempel - 2: Använd skalvariabel i awk med ett enda citat och dubbelt citat

Exemplet visar hur skalvariabeln kan användas 'awk' kommando. Här, en skalvariabel, myvar deklareras med värdet, “Linux-tips” i det första kommandot. '$' - symbolen används med ett skalvariabelnamn för att läsa värdet. Det andra kommandot läser variabeln, $ myval med ett enda citat (') och det tredje kommandot läser variabeln $ myvar med dubbelt citat (“) i uttalandet" awk ".

$ myvar = "Linux Tips"
$ eko | awk -v awkvar = '$ myvar' 'skriv awkvar; '
$ eko | awk -v awkvar = "$ myvar" 'skriv ut awkvar; '

Produktion:

Det visas i utgången att värdet på $ myvar inte kan läsas när det bifogas med en enda offert (') och utdata är $ myvar. Värdet av $ myvar skrivs ut när den bifogas med ett dubbelt citat (“).

Exempel - 3: Läser ARGC-variabel i awk

ARGC-variabel används för att räkna det totala antalet kommandoradsargument. Tre variabler för kommandoradsargument (t1, t2, t3) skickas i följande awk-skript. Här är det totala antalet argument med skriptet 4. Kör skriptet från terminalen.

$ awk 'BEGIN print "Total arguments =", ARGC' t1 t2 t3

Produktion:

Följande utdata visas efter körning av skriptet.

Exempel - 4: Läsa filinnehåll med argumentvariabler

Skapa en textfil med namnet kund.Text med följande innehåll för att öva detta exempel. Här separeras varje fält i filen med enstaka flik Plats.

kund.Text

ID-namn
103847 John Micheal
209485 Watson
974732 Mira Hossain

Awk-kommandot kan läsa varje fält från vilken textfil som helst genom argumentvariabler. Det finns två fält i kund.Text fil. Dessa är ID och namn. Följande skript skriver ut dessa två fält med argumentvariabler, $ 1 och $ 2 genom att separera två flik mellanslag. Kör skriptet från terminalen.

$ kattkund.Text
$ kattkund.txt | awk 'print $ 1 "\ t \ t" $ 2;'

Produktion:

Följande utdata visas efter att ovanstående kommandon har körts.

Exempel 5: Använda inbyggd variabel, FS och fältseparatoralternativ med awk-kommando

FS-variabel används i awk-kommando som fältseparator. Mellanslag används som standardvärde för FS. Följande kommando läser filen kund.Text använder utrymme som fältseparator och skriver ut filinnehållet. Kör kommandot från terminalen.

$ awk FS-kund.Text

Produktion:

Följande utdata visas efter körning av skriptet.

Awk-kommandot kan använda andra tecken som fältseparator genom att använda alternativet '-F'. Skapa en textfil med namnet produkt.Text med följande innehåll där ':' används som fältseparator.

produkt.Text

101: Tårta: $ 30
102: Penna: $ 5
103: Tvål: $ 3
104: Schampo: $ 10

Det finns tre fält i filen, produkt.Text som innehåller produkt-id, namn och pris. Följande awk-kommando skriver bara ut det andra fältet på varje rad. Kör kommandona från terminalen.

$ kattprodukt.Text
$ awk -F ':' 'skriv ut $ 2' produkt.Text

Produktion:

Här skrev det första kommandot ut innehållet i produkt.Text och det andra kommandot skrev endast ut det andra fältet i filen.

Exempel - 6: Använda inbyggd variabel, NR med awk-kommando

NR-variabeln används i kommandot awk för att räkna det totala antalet poster eller rader i en fil. Skapa en textfil med namnet studerande.Text för att testa funktionen hos denna variabel.

studerande.Text

Namn Batchtermin
Johannes 20 3
Mira 22 1
Ella 18
Charle 15 8

Följande awk-skript skriver ut de tre första raderna i produkt.Text fil. Här läggs ett villkor till med hjälp av NR-variabeln. Kommandot skriver ut de rader där NR-värdet är mindre än 4. Kör skriptet från terminalen.

Produktion:

Följande utdata visas efter körning av skriptet.

$ kattstudent.txt | awk 'NR < 4'

Exempel - 7: Använda inbyggd variabel, NF med awk-kommando

NF-variabel används i kommandot awk för att räkna det totala antalet fält i varje rad i en fil. Följande awk-skript tillämpas på filen, studerande.Text som skapades i föregående exempel. Manuset kommer att skriva ut dessa rader från studerande.Text fil där de totala fälten är mindre än 3. Kör kommandot från terminalen.

$ kattstudent.txt | awk 'NF < 3'

Produktion:

Det finns bara en rad i filen där det totala antalet fält är mindre än 3 som skrivs ut som utdata.

Exempel - 8: Använda inbyggd variabel, OFS med awk-kommando

OFS-variabeln används i kommandot awk för att lägga till utmatningsfältavgränsare i utgången. produkt.Text filen används i detta exempel för att visa användningen av OFS-variabeln. ':' används som fältseparator i produkten.txt-fil. Följande awk-skript använde '->' som OFS-värde och det andra och tredje fältet i filen skrivs ut genom att lägga till denna separator. Kör kommandona från terminalen.

$ kattprodukt.Text
$ awk -F ':' 'BÖRJA OFS = "->"; skriv ut $ 2, $ 3;' produkt.Text

Produktion:

Följande utskrift skrivs ut efter att kommandona har körts.

Slutsats:

De vanligaste användningarna av awk-variabler försöks förklara i denna handledning. Hoppas, läsaren kommer att kunna använda awk-variabler ordentligt i manuset efter att ha tränat denna handledning.

Så här installerar du League Of Legends på Ubuntu 14.04
Om du gillar League of Legends är det här en möjlighet för dig att testa League of Legends. Observera att LOL stöds på PlayOnLinux om du är en Linux-a...
Installera det senaste OpenRA-strategispelet på Ubuntu Linux
OpenRA är en Libre / Free Real Time Strategy-spelmotor som återskapar de tidiga Westwood-spelen som det klassiska Command & Conquer: Red Alert. Distri...
Installera senaste Dolphin Emulator för Gamecube & Wii på Linux
Dolphin Emulator låter dig spela dina valda Gamecube & Wii-spel på Linux Personal Computers (PC). Eftersom Dolphin Emulator är en fritt tillgänglig o...