Hvordan skrive ut den første kolonnen eller den siste kolonnen eller begge deler ved hjelp av 'AWK'

Hvordan skrive ut den første kolonnen eller den siste kolonnen eller begge deler ved hjelp av 'AWK'

Linux 'Awk' -kommando er et kraftig verktøy for forskjellige operasjoner på tekstfiler som søk, erstatter og utskrift. Det er enkelt å bruke med tabelldata fordi de automatisk deler hver linje i felt eller kolonner basert på feltskilleren. Når du jobber med en tekstfil som inneholder tabelldata og ønsker å skrive ut dataene til en bestemt kolonne, er "AWK" -kommandoen det beste alternativet. I denne opplæringen vil vi vise deg hvordan du skriver ut den første kolonnen og/eller den siste kolonnen i en linje eller tekstfil.

Skriv ut den første kolonnen og/eller siste kolonne i en kommandoutgang

Mange Linux -kommandoer som 'LS' -kommandoen genererer tabellutganger. Her vil vi vise deg hvordan du skriver ut den første kolonnen og/eller den siste kolonnen fra utgangen fra 'LS -L' -kommandoen.

Eksempel 1: Skriv ut den første kolonnen i en kommandoutgang

Følgende 'AWK' -kommando vil skrive ut den første kolonnen fra utgangen fra 'LS -L' -kommandoen.

$ ls -l
$ ls -l | awk 'skriv ut $ 1'

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

Eksempel 2: Skriv ut den siste kolonnen i en kommandoutgang

Følgende 'AWK' -kommando vil skrive ut den siste kolonnen fra utgangen fra 'LS -L' -kommandoen.

$ ls -l
$ ls -l | awk 'print $ nf'

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

Eksempel 3: Skriv ut de første og siste kolonnene i en kommandoutgang

Følgende 'AWK' -kommando vil skrive ut de første og siste kolonnene fra utgangen fra 'LS -L' -kommandoen.

$ ls -l
$ ls -l | awk 'skriv ut $ 1, $ nf'

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

Skriv ut den første kolonnen og/eller den siste kolonnen i en tekstfil

Her vil vi vise deg hvordan du bruker 'AWK' -kommandoen til å skrive ut den første kolonnen og/eller siste kolonnen i en tekstfil.

Lag en tekstfil

For å følge med med denne opplæringen, oppretter du en tekstfil som heter Kunder.tekst Med følgende innhold. Filen inneholder tre typer kundedata: Navn med ID, e -post og telefonnummer. Fane -tegnet (\ t) brukes til å skille disse verdiene.

Navn e -postkonen
Jonathon Bing - 1001 [email protected] 01967456323
Micheal Jackson - 2006 [email protected] 01756235643
Janifer Lopez - 3029 [email protected] 01822347865
John Abraham - 4235 [email protected] 01590078452
Mir Sabbir - 2756 [email protected] 01189523978

Eksempel 4: Skriv ut den første kolonnen i en fil uten å bruke en feltseparator

Hvis ingen feltskiller brukes i 'AWK' -kommandoen, brukes et rom som standard feltskillelse. Følgende 'AWK' -kommando vil skrive ut den første kolonnen ved å bruke standard separator.

$ kattekunder.tekst
$ awk 'skriv ut $ 1' kunder.tekst

Følgende utgang vil bli produsert etter å ha kjørt kommandoene ovenfor. Merk at utdataene bare viser kundens fornavn fordi plassen brukes som felt separator. Løsningen på dette problemet vises i neste eksempel.

Eksempel 5: Skriv ut den første kolonnen i en fil med en avgrenser

Her brukes \ t som feltskiller for å skrive ut den første kolonnen i filen. Alternativet '-f' brukes til å stille inn feltskilleren.

$ kattekunder.tekst
$ awk -f '\ t' 'skriv ut $ 1' kunder.tekst

Følgende utgang vil bli produsert etter å ha kjørt kommandoene ovenfor. Innholdet i filen er delt inn i tre kolonner basert på \ t. Derfor skrives kundens navn og ID som den første kolonnen. Hvis du vil skrive ut kundens navn uten ID, så fortsett til neste eksempel.


Hvis du vil skrive ut kundens navn uten ID, må du bruke '-' som feltskillelse. Følgende 'AWK' -kommando vil bare skrive ut kundens navn som den første kolonnen.

$ kattekunder.tekst
$ awk -f ' -' 'skriv ut $ 1' kunder.tekst

Følgende utgang vil bli produsert etter å ha kjørt kommandoene ovenfor. Utgangen inkluderer alle navnene på kundene uten IDS.

Eksempel 6: Skriv ut den siste kolonnen i en fil

Følgende 'AWK' -kommando vil skrive ut den siste kolonnen med kunder.tekst. Fordi ingen feltseparator brukes i kommandoen, vil plassen bli brukt som feltseparator.

$ kattekunder.tekst
$ awk 'print $ nf' kunder.tekst

Følgende utgang vil bli produsert etter å ha kjørt kommandoene ovenfor. Den siste kolonnen inneholder telefonnumre, som vist i utgangen.

Eksempel 7: Skriv ut de første og siste kolonnene i en fil

Følgende 'AWK' -kommando vil skrive ut de første og siste kolonnene med kunder.tekst. Her brukes Tab (\ T) som feltskillelse for å dele innholdet i kolonner. Her brukes tab (\ t) som en separator for utgangen.

$ kattekunder.tekst
$ awk -f "\ t" 'print $ 1 "\ t" $ nf' kunder.tekst

Følgende utgang vises etter å ha kjørt kommandoene ovenfor. Innholdet er delt inn i tre kolonner av \ t; Den første kolonnen inneholder kundens navn og ID, og ​​den andre kolonnen inneholder telefonnummeret. De første og siste kolonnene skrives ut ved å bruke \ t som separator.

Konklusjon

Kommandoen 'AWK' kan brukes på forskjellige måter for å få den første kolonnen og/eller siste kolonnen fra hvilken som helst kommandoutgang eller fra tabelldata. Det er viktig å merke seg at det er nødvendig.