Exempel 1: Skriv ut ett antal kolumner från en kommandoutgång
Följande kommando skriver ut den andra, tredje och fjärde kolumnen från kommandoutgången, 'ls -l''. Här anges kolumnnumren uttryckligen, men ett mer effektivt kommando för att skriva ut samma kolumnområde visas i nästa exempel.
$ ls -l | awk 'skriv ut $ 2, $ 3, $ 4'Följande utdata produceras av kommandot ovan.
Exempel 2: Skriv ut kolumnintervallet från en fil med hjälp av a för slinga
För att följa med detta exempel och de andra exemplen i denna handledning skapar du en textfil med namnet märken.Text med följande innehåll:
ID CSE203 CSE102 CSE2021109 78 87 79
1167 67 81 70
1190 56 61 69
1156 89 55 78
199 54 66 58
Följande "awk" -kommando skriver ut de första tre kolumnerna med märken.Text. De för loop används för att skriva ut kolumnvärdena och loop innehåller tre steg. De NF variabel anger det totala antalet fält eller kolumner i filen.
$ kattmärken.Text$ awk 'för (i = 1; i<=NF-1;i++) printf $i" "; print ""' marks.txt
Följande utdata produceras genom att köra kommandot. Resultatet visar eleven ID och märkena för CSE203 och CSE102.
Exempel 3: Skriv ut kolumnintervallet genom att definiera start- och slutvariabler
Följande kommando "awk" skriver ut de första tre kolumnerna från kommandoutgången "ls -l" genom att initiera startande och slut variabler. Här är värdet på startande variabeln är 1 och värdet på slut variabel är 3. Dessa variabler itreras i en for-loop för att skriva ut kolumnvärdena.
$ ls -l | awk 'BEGIN first = 1; sista = 3för (i = först; i < last; i++) printf("%s ", $i) print $last '
Följande utdata visas när kommandot har körts. Utgången visar de första tre kolumnvärdena för utgången, 'ls -l'.
Exempel 4: Skriv ut en rad kolumner från en fil med formatering
Följande kommando "awk" skriver ut de tre första kolumnerna i märken.Text använder sig av tryckf och utmatningsfältavgränsare (OFS). Här innehåller for loop tre steg och tre kolumner skrivs ut i följd från filen. OFS används här för att lägga till utrymme mellan kolumner. När räknarvärdet för slingan (i) är lika med slut variabel genereras en ny rad (\ n).
$ kattmärken.Text$ awk -v start = 1 -v end = 3 'för (i = start; i<=end;i++) printf("%s%s",
$ i, (i == slut) ? "\ n": OFS) -märken.Text
Följande utdata genereras efter att ovanstående kommandon har körts.
Exempel 5: Skriv ut kolumnintervallet från en fil med ett villkorligt uttalande
Följande kommando "awk" skriver ut de första och sista kolumnerna från en fil med hjälp av en for-loop och en if-sats. Här innehåller for-slingan fyra steg. De startande och slut variabler används i skriptet för att utelämna den andra och tredje kolumnen från filen genom att använda if-villkoret. OFS-variabeln används för att lägga till utrymme mellan kolumnerna och ORS-variabeln används för att lägga till en ny rad (\ n) efter utskrift av den sista kolumnen.
$ kattmärken.Text$ awk -v start = 2 -v end = 3 'för (i = 1; i<=NF;i++)
om (i> = start && i<=end) continue;
annars printf ("% s% s", $ i, (i!= NF) ? OFS: ORS) 'märken.Text
Följande utdata visas efter att ovanstående kommandon har körts. Utgången visar den första och sista kolumnen med märken.Text.
Exempel 6: Skriv ut kolumnintervallet från en fil med NF-variabeln
Följande kommando 'awk' skriver ut de första och sista kolumnerna från filen med en NF-variabel. Inga loopar eller villkorliga uttalanden används för att skriva ut kolumnvärdena. NF anger antalet fält. Det finns fyra kolumner i märken.Text. $ (NF-3) definierar den första kolumnen och $ NF anger den sista kolumnen.
$ kattmärken.Text$ awk 'print $ (NF-3) "" $ NF' märken.Text
Följande utdata produceras genom att köra ovanstående kommandon. Utdata visar den första och sista kolumnen med märken.Text.
Exempel 7: Skriv ut kolumnintervallet från en fil med substr () och index ()
Funktionen index () returnerar en position om det andra argumentvärdet finns i det första argumentvärdet. Funktionen substr () kan ta tre argument. Det första argumentet är ett strängvärde, det andra argumentet är startpositionen och det tredje argumentet är längden. Det tredje argumentet för substr () utelämnas i följande kommando. Eftersom kolumnen börjar från $ 1 i kommandot "awk" returnerar index () -funktionen $ 3 och kommandot skrivs ut från $ 3 till $ 4.
$ kattmärken.Text$ awk 'print substr ($ 0, index ($ 0, $ 3))' märken.Text
Följande utdata produceras genom att köra ovanstående kommandon.
Exempel 8: Skriv ut ett antal kolumner från en fil med hjälp av printf
Följande kommando 'awk' skriver ut den första, andra och tredje kolumnen med märken.txt genom att ställa in tillräckligt med utrymme för 10 tecken.
$ kattmärken.Text$ awk '// printf "% 10s% 10s% 10s \ n", $ 1, $ 3, $ 2' märken.Text
Följande utdata produceras genom att köra ovanstående kommandon.
Slutsats
Det finns olika sätt att skriva ut kolumner från kommandoutgången eller en fil. Denna handledning visar hur kommandot 'awk' kan hjälpa Linux-användare att skriva ut innehåll från tabelldata.