Hvordan skrive ut en rekke kolonner ved hjelp av 'AWK' -kommandoen

Hvordan skrive ut en rekke kolonner ved hjelp av 'AWK' -kommandoen
Kommandoen 'AWK' er en av mange kommandoer som kan brukes til å skrive ut en rekke kolonner fra tabelldata i Linux. Kommandoen 'AWK' er kan brukes direkte fra terminalen ved å utføre 'AWK' skriptfilen. I denne opplæringen vil vi vise deg hvordan du skriver ut en rekke kolonner fra tabelldata.

Eksempel 1: Skriv ut en rekke kolonner fra en kommandoutgang

Følgende kommando vil skrive ut andre, tredje og fjerde kolonner fra kommandoutgangen, 'ls -l'. Her er kolonnetall.

$ ls -l | awk 'skriv ut $ 2, $ 3, $ 4'

Følgende utgang produseres av kommandoen ovenfor.

Eksempel 2: Skriv ut kolonnerområdet fra en fil ved å bruke en til Løkke

For å følge med dette eksemplet og de andre eksemplene i denne opplæringen, oppretter du en tekstfil som heter merker.tekst Med følgende innhold:

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 'AWK' -kommando vil skrive ut de tre første kolonnene med merker.tekst. De til Loop brukes til å skrive ut kolonneverdiene, og sløyfen inneholder tre trinn. De Nf Variabel indikerer det totale antall felt eller kolonner i filen.

$ kattemerker.tekst
$ awk 'for (i = 1; i<=NF-1;i++) printf $i" "; print ""' marks.txt

Følgende utdata vil bli produsert ved å kjøre kommandoen. Produksjonen viser studenten Ids og merkene for CSE203 og CSE102.

Eksempel 3: Skriv ut spaltenes utvalg ved å definere start- og sluttvariabler

Følgende 'AWK' -kommando vil skrive ut de tre første kolonnene fra kommandoutgangen 'LS -L' ved å initialisere starter og slutter variabler. Her, verdien av starter variabel er 1, og verdien av slutter Variabel er 3. Disse variablene er iterert over i en for loop for å skrive ut kolonneverdiene.

$ ls -l | awk 'begynn først = 1; sist = 3
for (i = først; i < last; i++) printf("%s ", $i) print $last '

Følgende utgang vises etter å ha kjørt kommandoen. Utgangen viser de tre første kolonneverdiene for utgangen, 'ls -l'.

Eksempel 4: Skriv ut en rekke kolonner fra en fil med formatering

Følgende 'awk' -kommando vil skrive ut de tre første kolonnene i merker.tekst ved hjelp av printf og utgangsfeltseparator (OFS). Her inkluderer for -loopen tre trinn, og tre kolonner vil bli skrevet ut i rekkefølge fra filen. OFS brukes her for å legge til mellomrom mellom kolonnene. Når tellerverdien på sløyfen (i) tilsvarer slutter variabel, deretter genereres en ny linje (\ n).

$ kattemerker.tekst
$ awk -v start = 1 -v slutt = 3 'for (i = start; i<=end;i++) printf("%s%s",
$ i, (i == slutt) ? "\ n": ofs) 'merker.tekst

Følgende utgang vil bli generert etter å ha kjørt kommandoene ovenfor.

Eksempel 5: Skriv ut kolonnens utvalg fra en fil ved hjelp av en betinget uttalelse

Følgende 'awk' -kommando vil skrive ut de første og siste kolonnene fra en fil ved å bruke en for loop og en IF -uttalelse. Her inkluderer for -loopen fire trinn. De starter og slutter Variabler brukes i skriptet for å utelate andre og tredje kolonner fra filen ved å bruke IF -tilstanden. OFS -variabelen brukes til å legge til mellomrom mellom kolonnene, og ORS -variabelen brukes til å legge til en ny linje (\ n) etter å ha skrevet ut den siste kolonnen.

$ kattemerker.tekst
$ awk -v start = 2 -v slutt = 3 'for (i = 1; i<=NF;i++)
if (i> = start && i<=end) continue;
ellers printf ("%s%s", $ i, (i!= NF) ? OFS: ors) 'merker.tekst

Følgende utgang vises etter å ha kjørt kommandoene ovenfor. Utgangen viser de første og siste kolonnene med merker.tekst.

EKSEMPEL 6: Skriv ut kolonnens utvalg fra en fil ved hjelp av NF -variabelen

Følgende 'AWK' -kommando vil skrive ut de første og siste kolonnene fra filen ved å bruke en NF -variabel. Ingen løkker eller betingede utsagn brukes til å skrive ut kolonneverdiene. NF indikerer antall felt. Det er fire kolonner i merker.tekst. $ (NF-3) definerer den første kolonnen, og $ NF indikerer den siste kolonnen.

$ kattemerker.tekst
$ awk 'print $ (nf-3) "" $ nf' merker.tekst

Følgende utgang produseres ved å kjøre kommandoene ovenfor. Utgangen viser de første og siste kolonnene med merker.tekst.

Eksempel 7: Skriv ut kolonnerområdet fra en fil ved hjelp av Substr () og Index ()

Indeksen () -funksjonen returnerer en posisjon hvis den andre argumentverdien eksisterer i den første argumentverdien. Substr () -funksjonen kan ta tre argumenter. Det første argumentet er en strengverdi, det andre argumentet er startposisjonen, og det tredje argumentet er lengden. Det tredje argumentet for Substr () er utelatt i følgende kommando. Fordi kolonnen starter fra $ 1 i 'AWK' -kommandoen, vil indeksen () -funksjonen returnere $ 3, og kommandoen vil skrives ut fra $ 3 til $ 4.

$ kattemerker.tekst
$ awk 'Print Substr ($ 0, Index ($ 0, $ 3))' Marks.tekst

Følgende utgang vil bli produsert ved å kjøre kommandoene ovenfor.

Eksempel 8: Skriv ut en rekke kolonner fra en fil ved hjelp av en fil ved hjelp av printf

Følgende 'AWK' -kommando vil skrive ut de første, andre og tredje kolonnene med merker.txt ved å sette nok plass til 10 tegn.

$ kattemerker.tekst
$ awk '// printf " %10s %10s %10s \ n", $ 1, $ 3, $ 2' merker.tekst

Følgende utgang vil bli produsert ved å kjøre kommandoene ovenfor.

Konklusjon

Det er forskjellige måter å skrive ut spalten av kolonner fra kommandoutgangen eller en fil. Denne opplæringen viser hvordan 'AWK' -kommando kan hjelpe Linux -brukere til å skrive ut innhold fra tabelldata.