Awk

Sådan udskrives en række kolonner ved hjælp af kommandoen 'awk'

Sådan udskrives en række kolonner ved hjælp af kommandoen 'awk'
Kommandoen 'awk' er en af ​​mange kommandoer, der kan bruges til at udskrive en række kolonner fra tabeldata i Linux. Kommandoen 'awk' kan bruges direkte fra terminalen ved at udføre 'awk' scriptfilen. I denne vejledning viser vi dig, hvordan du udskriver en række kolonner fra tabeldata.

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 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 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 = 3
for (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.

Mus Styr og administrer musebevægelse mellem flere skærme i Windows 10
Styr og administrer musebevægelse mellem flere skærme i Windows 10
Dual Display Mouse Manager lader dig kontrollere og konfigurere musebevægelse mellem flere skærme ved at bremse dens bevægelser nær grænsen. Windows 1...
Mus WinMouse giver dig mulighed for at tilpasse og forbedre musemarkørens bevægelse på Windows-pc
WinMouse giver dig mulighed for at tilpasse og forbedre musemarkørens bevægelse på Windows-pc
Hvis du vil forbedre standardfunktionerne for din musemarkør, skal du bruge freeware WinMouse. Det tilføjer flere funktioner, der hjælper dig med at f...
Mus Museklik på venstre museknap fungerer ikke på Windows 10
Museklik på venstre museknap fungerer ikke på Windows 10
Hvis du bruger en dedikeret mus med din bærbare computer eller stationære computer, men musens venstre-klik-knap fungerer ikke på Windows 10/8/7 af en...