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-telefonJonathon 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.
$ 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.