Awk

Slik skriver du ut første kolonne eller siste kolonne eller begge deler ved hjelp av 'awk'

Slik skriver du ut første kolonne eller siste kolonne eller begge deler ved hjelp av 'awk'

Linux 'awk' -kommando er et kraftig verktøy for forskjellige operasjoner på tekstfiler som søk, erstat og skriv ut. Det er enkelt å bruke med tabelldata, fordi det automatisk deler hver linje i felt eller kolonner basert på feltskilleren. Når du jobber med en tekstfil som inneholder tabelldata og vil skrive ut dataene til en bestemt kolonne, er kommandoen awk 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 den siste kolonnen i en kommandoutgang

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

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

Følgende 'awk' -kommando vil skrive ut den første kolonnen fra utgangen av 'ls -l' -kommandoen.

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

Følgende utdata blir produsert etter å ha kjørt kommandoene ovenfor.

Eksempel 2: Skriv ut den siste kolonnen i en kommandoutgang

Følgende kommando 'awk' vil skrive ut den siste kolonnen fra utdataene til 'ls -l' kommandoen.

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

Følgende utdata blir produsert etter å ha kjørt kommandoene ovenfor.

Eksempel 3: Skriv ut den første og siste kolonnen i en kommandoutgang

Følgende 'awk' kommando vil skrive ut den første og siste kolonnen fra utdataene til 'ls -l' kommandoen.

$ ls -l
$ ls -l | awk 'print $ 1, $ NF'

Følgende utdata blir 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 kommandoen 'awk' til å skrive ut den første kolonnen og / eller den siste kolonnen i en tekstfil.

Lag en tekstfil

For å følge denne veiledningen, opprett en tekstfil med navnet kunder.tekst med følgende innhold. Filen inneholder tre typer kundedata: navn med id, e-postadresse og telefonnummer. Fanetegnet (\ t) brukes til å skille disse verdiene.

Navn E-post Telefon
Jonathon Bing - 1001 [e-postbeskyttet] 01967456323
Micheal Jackson - 2006 [e-postbeskyttet] 01756235643
Janifer Lopez - 3029 [e-postbeskyttet] 01822347865
John Abraham - 4235 j [e-postbeskyttet] 01590078452
Mir Sabbir - 2756 [e-postbeskyttet] 01189523978

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

Hvis ingen feltseparator brukes i kommandoen 'awk', brukes et mellomrom som standard feltseparator. Følgende kommando 'awk' vil skrive ut den første kolonnen ved å bruke standard separator.

$ kattkunder.tekst
$ awk 'print $ 1' kunder.tekst

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

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

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

$ kattkunder.tekst
$ awk -F '\ t' 'print $ 1' kunder.tekst

Følgende utdata blir 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 ut som den første kolonnen. Hvis du vil skrive ut kundens navn uten id, fortsett til neste eksempel.


Hvis du vil skrive ut kundens navn uten ID-en, må du bruke '-' som feltseparator. Følgende kommando "awk" vil kun skrive ut kundens navn som den første kolonnen.

$ kattkunder.tekst
$ awk -F '-' 'print $ 1' kunder.tekst

Følgende utdata blir produsert etter å ha kjørt kommandoene ovenfor. Produksjonen inkluderer de fulle navnene på kundene uten deres ID.

Eksempel 6: Skriv ut den siste kolonnen i en fil

Følgende kommando "awk" vil skrive ut den siste kolonnen med kunder.tekst. Fordi ingen feltseparator brukes i kommandoen, vil plassen brukes som feltutskiller.

$ kattkunder.tekst
$ awk 'print $ NF' kunder.tekst

Følgende utdata blir produsert etter å ha kjørt kommandoene ovenfor. Den siste kolonnen inneholder telefonnumre, som vist i utdataene.

Eksempel 7: Skriv ut den første og siste kolonnen i en fil

Følgende kommando 'awk' vil skrive ut den første og siste kolonnen til kunder.tekst. Her brukes tab (\ t) som feltseparator for å dele innholdet i kolonner. Her brukes tab (\ t) som separator for utdata.

$ kattkunder.tekst
$ awk -F "\ t" 'print $ 1 "\ t" $ NF' kunder.tekst

Følgende utdata vises når du har kjørt kommandoene ovenfor. Innholdet er delt inn i tre kolonner med \ t; den første kolonnen inneholder kundens navn og ID, og ​​den andre kolonnen inneholder telefonnummeret. Den første og siste kolonnen skrives ut ved å bruke \ t som skilletegn.

Konklusjon

Kommandoen 'awk' kan brukes på forskjellige måter for å få den første kolonnen og / eller den siste kolonnen fra hvilken som helst kommandoutgang eller fra tabelldata. Det er viktig å merke seg at det kreves en feltutskiller i kommandoen, og hvis en ikke er gitt, blir plassen brukt.

Shadow of the Tomb Raider for Linux Tutorial
Shadow of the Tomb Raider er det tolvte tilskuddet til Tomb Raider-serien - et action-eventyrspill-franchise opprettet av Eidos Montreal. Spillet ble ...
Hvordan øke FPS i Linux?
FPS står for Bilder per sekund. FPSs oppgave er å måle bildefrekvensen i videoavspilling eller spillprestasjoner. Med enkle ord betegnes antall uavbru...
Topp Oculus App Lab-spill
Hvis du er Oculus-hodesettinnehaver, må du være klar over sideloading. Sidelading er prosessen med å installere ikke-butikkinnhold på hodesettet. Side...