Eksempel 1: Udskriv en række kolonner fra et kommandoutput
Den følgende kommando udskriver den anden, tredje og fjerde kolonne fra kommandoudgangen, ’Ls -l '. Her angives kolonnetallet eksplicit, men en mere effektiv kommando til udskrivning af det samme område af kolonner er vist i det næste eksempel.
$ls -det | awk '{print $ 2, $ 3, $ 4}'
Følgende output produceres af kommandoen ovenfor.
Eksempel 2: Udskriv kolonneområdet fra en fil ved hjælp af en til sløjfe
For at følge med dette eksempel og de andre eksempler i denne vejledning skal du oprette en tekstfil med navnet mærker.txt med følgende indhold :
ID CSE203 CSE102 CSE202
1109 78 87 79
1167 67 81 70
1190 56 61 69
1156 89 55 78
199 54 66 58
Følgende kommando `awk` udskriver de tre første kolonner med mærker.txt. Det til loop bruges til at udskrive kolonneværdierne, og loopet indeholder tre trin. Det NF variabel angiver det samlede antal felter eller kolonner i filen.
$katmærker.txt$awk '{for (i = 1; i<=NF-1;i++) printf $i' '; print ''}'mærker.txt
Følgende output produceres ved at køre kommandoen. Output viser eleven ID'er og mærkerne for CSE203 og CSE102 .
Eksempel 3: Udskriv rækkevidden af kolonner ved at definere start- og slutningsvariabler
Den følgende kommando `awk` udskriver de tre første kolonner fra kommandoudgangen 'ls -l' ved at initialisere starter og Slutning variabler. Her er værdien af starter variabel er 1, og værdien af Slutning variabel er 3. Disse variabler gentages i en for loop for at udskrive kolonneværdierne.
$ls -det | awk 'BEGYNN {første = 1; sidste = 3}{for (i = først; i
Følgende output vises efter at have kørt kommandoen. Outputtet viser de tre første kolonneværdier for output, 'ls -l'.
Eksempel 4: Udskriv en række kolonner fra en fil med formatering
Den følgende kommando `awk` udskriver de tre første kolonner af mærker.txt ved brug af printf og outputfeltudskiller ( OFS ). Her indeholder for -løkken tre trin, og tre kolonner udskrives i rækkefølge fra filen. OFS bruges her til at tilføje mellemrum mellem kolonner. Når tællerværdien af sløjfen (i) er lig med Slutning variabel, så genereres en ny linje ( n).
$katmærker.txt$awk -v Start=1 -v ende=3 '{for (i = start; i<=end;i++) printf('%s%s',
$ i, (i == slut)? ' n': OFS)} 'mærker.txt
Følgende output genereres efter kørsel af ovenstående kommandoer.
Eksempel 5: Udskriv kolonneområdet fra en fil ved hjælp af en betinget erklæring
Følgende kommando `awk` udskriver de første og sidste kolonner fra en fil ved hjælp af en for loop og en if -sætning. Her indeholder for -løkken fire trin. Det starter og Slutning variabler bruges i scriptet til at udelade den anden og tredje kolonne fra filen ved hjælp af if -betingelsen. OFS -variablen bruges til at tilføje mellemrum mellem kolonnerne, og ORS -variablen bruges til at tilføje en ny linje ( n) efter udskrivning af den sidste kolonne.
$katmærker.txt$awk -v Start=2 -v ende=3 '{for (i = 1; i<=NF;i++)
hvis (i> = start && i<=end) continue;
ellers printf ('%s%s', $ i, (i! = NF)? OFS: ORS)} 'mærker.txt
Følgende output vises efter kørsel af ovenstående kommandoer. Outputtet viser den første og sidste kolonne med mærker.txt.
Eksempel 6: Udskriv kolonneområdet fra en fil ved hjælp af NF -variablen
Følgende kommando `awk` udskriver de første og sidste kolonner fra filen ved hjælp af en NF -variabel. Der bruges ingen sløjfer eller betingede udsagn til at udskrive kolonneværdierne. NF angiver antallet af felter. Der er fire kolonner i marks.txt. $ (NF-3) definerer den første kolonne, og $ NF angiver den sidste kolonne.
$katmærker.txt$awk '{print $ (NF-3)' '$ NF}'mærker.txt
Følgende output produceres ved at køre ovenstående kommandoer. Outputtet viser den første og sidste kolonne med mærker.txt.
Eksempel 7: Udskriv række af kolonner fra en fil ved hjælp af substr () og indeks ()
Indeksen () -funktionen returnerer en position, hvis den anden argumentværdi findes i den første argumentværdi. Substra () -funktionen kan tage tre argumenter. Det første argument er en strengværdi, det andet argument er startpositionen, og det tredje argument er længden. Det tredje argument for substr () udelades i den følgende kommando. Fordi kolonnen starter fra $ 1 i kommandoen `awk`, returnerer index () -funktionen $ 3, og kommandoen udskrives fra $ 3 til $ 4.
$katmærker.txt$awk '{print substr ($ 0, index ($ 0, $ 3))}' 'mærker.txt
Følgende output produceres ved at køre ovenstående kommandoer.
Eksempel 8: Udskriv sekventielt en række kolonner fra en fil ved hjælp af printf
Følgende kommando `awk` udskriver den første, anden og tredje kolonne med mærker.txt ved at angive plads nok til 10 tegn.
$katmærker.txt$awk '// {printf' %10s %10s %10s n ', $ 1, $ 3, $ 2}'mærker.txt
Følgende output produceres ved at køre ovenstående kommandoer.
Konklusion
Der er forskellige måder at udskrive række af kolonner fra kommandoutputtet eller en fil. Denne vejledning viser, hvordan kommandoen `awk` kan hjælpe Linux -brugere med at udskrive indhold fra tabeldata.