Awk

Sådan udskrives den første kolonne eller sidste kolonne eller begge ved hjælp af 'awk'

Sådan udskrives den første kolonne eller sidste kolonne eller begge ved hjælp af 'awk'

Linux 'kommando' awk 'er et kraftfuldt værktøj til forskellige operationer på tekstfiler såsom søgning, erstatning og udskrivning. Det er let at bruge med tabeldata, fordi de automatisk opdeler hver linje i felter eller kolonner baseret på feltadskilleren. Når du arbejder med en tekstfil, der indeholder tabeldata og ønsker at udskrive dataene i en bestemt kolonne, er kommandoen 'awk' den bedste mulighed. I denne vejledning viser vi dig, hvordan du udskriver den første kolonne og / eller den sidste kolonne i en linje eller tekstfil.

Udskriv den første kolonne og / eller den sidste kolonne i en kommandooutput

Mange Linux-kommandoer, såsom kommandoen 'ls', genererer tabeludgange. Her viser vi dig, hvordan du udskriver den første kolonne og / eller den sidste kolonne fra output fra kommandoen 'ls -l'.

Eksempel 1: Udskriv den første kolonne i en kommandooutput

Den følgende kommando 'awk' udskriver den første kolonne fra output fra kommandoen 'ls -l'.

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

Følgende output produceres efter kørsel af ovenstående kommandoer.

Eksempel 2: Udskriv den sidste kolonne i en kommandooutput

Den følgende kommando 'awk' udskriver den sidste kolonne fra output fra kommandoen 'ls -l'.

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

Følgende output produceres efter kørsel af ovenstående kommandoer.

Eksempel 3: Udskriv den første og sidste kolonne i en kommandooutput

Den følgende kommando 'awk' udskriver den første og sidste kolonne fra output fra kommandoen 'ls -l'.

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

Følgende output produceres efter kørsel af ovenstående kommandoer.

Udskriv den første kolonne og / eller sidste kolonne i en tekstfil

Her viser vi dig, hvordan du bruger kommandoen 'awk' til at udskrive den første kolonne og / eller den sidste kolonne i en tekstfil.

Opret en tekstfil

For at følge med i denne vejledning skal du oprette en tekstfil med navnet kunder.txt med følgende indhold. Filen indeholder tre typer kundedata: navn med id, e-mail og telefonnummer. Fanetegnet (\ t) bruges til at adskille disse værdier.

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

Eksempel 4: Udskriv den første kolonne i en fil uden brug af en feltadskiller

Hvis der ikke anvendes nogen feltseparator i kommandoen 'awk', bruges et mellemrum som standard feltseparator. Følgende kommando 'awk' udskriver den første kolonne ved hjælp af standardseparatoren.

$ kat kunder.txt
$ awk 'print $ 1' kunder.txt

Følgende output produceres efter kørsel af ovenstående kommandoer. Bemærk, at output kun viser kundens fornavn, fordi pladsen anvendes som feltseparator. Løsningen på dette problem vises i det næste eksempel.

Eksempel 5: Udskriv den første kolonne i en fil med en afgrænser

Her bruges \ t som en feltseparator til at udskrive den første kolonne i filen. Indstillingen '-F' bruges til at indstille feltadskilleren.

$ kat kunder.txt
$ awk -F '\ t' 'print $ 1' kunder.txt

Følgende output produceres efter kørsel af ovenstående kommandoer. Indholdet af filen er opdelt i tre kolonner baseret på \ t. Derfor udskrives kundens navn og id som den første kolonne. Hvis du vil udskrive kundens navn uden id'et, skal du fortsætte til det næste eksempel.


Hvis du vil udskrive kundens navn uden id'et, skal du bruge '-' som en feltadskiller. Den følgende kommando 'awk' udskriver kun kundens navn som den første kolonne.

$ kat kunder.txt
$ awk -F '-' 'print $ 1' kunder.txt

Følgende output produceres efter kørsel af ovenstående kommandoer. Outputtet inkluderer de fulde navne på kunderne uden deres id'er.

Eksempel 6: Udskriv den sidste kolonne i en fil

Følgende kommando 'awk' udskriver den sidste kolonne af kunder.txt. Da der ikke bruges nogen feltseparator i kommandoen, bruges rummet som en feltadskiller.

$ kat kunder.txt
$ awk 'print $ NF' - kunder.txt

Følgende output produceres efter kørsel af ovenstående kommandoer. Den sidste kolonne indeholder telefonnumre, som vist i output.

Eksempel 7: Udskriv den første og sidste kolonne i en fil

Følgende kommando 'awk' udskriver den første og sidste kolonne af kunder.txt. Her bruges fane (\ t) som feltseparator til at opdele indholdet i kolonner. Her bruges fane (\ t) som en separator for output.

$ kat kunder.txt
$ awk -F "\ t" 'print $ 1 "\ t" $ NF' kunder.txt

Følgende output vises efter kørsel af ovenstående kommandoer. Indholdet er opdelt i tre kolonner med \ t; den første kolonne indeholder kundens navn og id, og den anden kolonne indeholder telefonnummeret. Den første og sidste kolonne udskrives ved hjælp af \ t som separator.

Konklusion

Kommandoen 'awk' kan anvendes på forskellige måder for at få den første kolonne og / eller den sidste kolonne fra enhver kommandooutput eller fra tabeldata. Det er vigtigt at bemærke, at der kræves en feltseparator i kommandoen, og hvis en ikke er angivet, bruges pladsen.

Mus Sådan bruges Xdotool til at stimulere museklik og tastetryk i Linux
Sådan bruges Xdotool til at stimulere museklik og tastetryk i Linux
Xdotool er et gratis og open source kommandolinjeværktøj til simulering af museklik og tastetryk. Denne artikel dækker en kort vejledning om brug af x...
Mus Top 5 ergonomiske computermusprodukter til Linux
Top 5 ergonomiske computermusprodukter til Linux
Forårsager langvarig brug af computeren smerter i dit håndled eller fingre? Lider du af stive led og er konstant nødt til at ryste hænderne? Føler du ...
Mus Sådan ændres mus og touchpad-indstillinger ved hjælp af Xinput i Linux
Sådan ændres mus og touchpad-indstillinger ved hjælp af Xinput i Linux
De fleste Linux-distributioner leveres som standard med "libinput" -biblioteket til at håndtere inputhændelser på et system. Det kan behandle inputhæn...