Eksempel 1: Udskriv et række kolonner fra en kommandooutput
Den følgende kommando udskriver den anden, tredje og fjerde kolonne fra kommandooutputtet, 'ls -l''. Her er kolonnetallene eksplicit angivet, men en mere effektiv kommando til udskrivning af det samme kolonneområde vises i det næste eksempel.
$ ls -l | awk 'udskriv $ 2, $ 3, $ 4'Følgende output produceres ved hjælp af kommandoen ovenfor.
Eksempel 2: Udskriv kolonneområdet fra en fil ved hjælp af a til løkke
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 CSE2021109 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 første tre kolonner med mærker.txt. Det til loop bruges til at udskrive kolonneværdierne, og loop inkluderer tre trin. Det NF variabel angiver det samlede antal felter eller kolonner i filen.
$ kat mærker.txt$ awk 'for (i = 1; i<=NF-1;i++) printf $i" "; print ""' marks.txt
Følgende output produceres ved at køre kommandoen. Outputtet viser eleven ID'er og mærkerne for CSE203 og CSE102.
Eksempel 3: Udskriv kolonneområdet ved at definere start- og slutvariabler
Den følgende kommando 'awk' udskriver de første tre kolonner fra kommandooutputtet 'ls -l' ved at initialisere start og Slutning variabler. Her er værdien af start variabel er 1, og værdien af Slutning variabel er 3. Disse variabler gentages i en for-løkke for at udskrive kolonneværdierne.
$ ls -l | awk 'BEGIN first = 1; sidste = 3for (i = først; i < last; i++) printf("%s ", $i) print $last '
Følgende output vises efter kørsel af kommandoen. Outputtet viser de første tre kolonneværdier for output, 'ls -l'.
Eksempel 4: Udskriv et række kolonner fra en fil med formatering
Den følgende kommando 'awk' udskriver de første tre kolonner i mærker.txt ved brug af printf og outputfeltadskiller (OFS). Her inkluderer for-sløjfen tre trin, og tre kolonner udskrives i rækkefølge fra filen. OFS bruges her til at tilføje mellemrum mellem kolonner. Når modværdien af sløjfen (i) er lig med Slutning variabel, så genereres en ny linje (\ n).
$ kat mærker.txt$ awk -v start = 1 -v end = 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
Den følgende kommando 'awk' udskriver den første og sidste kolonne fra en fil ved hjælp af en for-loop og en if-sætning. Her inkluderer for-sløjfen fire trin. Det start og Slutning variabler bruges i scriptet til at udelade anden og tredje kolonne fra filen ved hjælp af betingelsen if. 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.
$ kat mærker.txt$ awk -v start = 2 -v end = 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
Den følgende kommando 'awk' udskriver den første og sidste kolonne fra filen ved hjælp af en NF-variabel. Ingen sløjfer eller betingede udsagn bruges til at udskrive kolonneværdierne. NF angiver antallet af felter. Der er fire kolonner i mærker.txt. $ (NF-3) definerer den første kolonne, og $ NF angiver den sidste kolonne.
$ kat mæ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 kolonneområdet fra en fil ved hjælp af substr () og index ()
Funktionen indeks () returnerer en position, hvis den anden argumentværdi findes i den første argumentværdi. Funktionen substr () 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 i substr () udelades i den følgende kommando. Fordi kolonnen starter fra $ 1 i kommandoen 'awk', returnerer indeks () -funktionen $ 3, og kommandoen udskrives fra $ 3 til $ 4.
$ kat mæ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 rækkefølge et række kolonner fra en fil ved hjælp af printf
Den følgende kommando 'awk' udskriver den første, anden og tredje kolonne med mærker.txt ved at indstille plads nok til 10 tegn.
$ kat mæ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 kolonneområdet fra kommandooutputtet eller en fil på. Denne vejledning viser, hvordan 'awk' -kommandoen kan hjælpe Linux-brugere med at udskrive indhold fra tabeldata.