Sådan bruger du Linux-kommandoen awk til at analysere filer
Ved hjælp af kommandoen awk kan du gennemgå filer og udføre bestemte handlinger. Grundlaget for denne Linux-kommando går helt tilbage til 1977.
Hvad er Linux-kommandoen awk?
Linux har et script- og programmeringssprog, som du kan bruge til at analysere og redigere filer. Det hedder awk og stammer helt tilbage fra 1977. Navnet er hentet fra de tre udviklere: Alfred Aho, Peter Weinberger og Brian Kernighan. Du kan nemt bruge værktøjet via kommandolinjen eller SSH (Secure Shell). Ligesom når du bruger Linux-kommandoen grep, kan du bruge awk-kommandoen til at søge efter bestemte mønstre i filer, og hvis andre betingelser er opfyldt, kan de redigeres.
Hvordan fungerer kommandoen awk?
Awk bruger en kombination af betingelser og instruktioner. Når kommandoen køres, gennemgår den filen linje for linje på udkig efter bestemte betingelser. Hvis den finder disse betingelser i en linje, udfører den den pågældende instruktion. Hvis der ikke er angivet nogen betingelse, udføres instruktionen på hver eneste linje. Hvis du ikke indtaster en instruktion, udføres standardinstruktionen fra indtastningsrækken. Det betyder, at du kan bruge Linux awk til at søge efter bestemte termer eller eksempler i filer.
Hvordan ser awk-syntaksen ud?
Syntaksen for Linux-kommandoen awk ser således ud:
$ awk [Options] "Operation {Instructions}" [Target file]shellHvilke muligheder har kommandoen awk?
Du har tre muligheder:
- -F [Separator]: Du kan bruge denne indstilling til at angive en separator mellem filerne. Det er normalt et enkelt mellemrum.
- -f [Filnavn]: Du kan bruge denne indstilling til at angive, i hvilken fil du vil køre awk-kommandoen.
- -v: Brug denne indstilling til at tilføje en variabel.
Eksempler på kommandoen awk
For at få en bedre forståelse af, hvordan du kan bruge ask, følger her et par eksempler. I dette tilfælde bruger vi en fil ved navn example.txt, der indeholder en liste over byer, lande og kontinenter i separate kolonner. Den ser således ud:
City Country Continent
Washington D.C USA America
Paris France Europe
Hanoi Vietnam Asia
Abuja Nigeria AfricashellHvis du vil udskrive hele filen, skal du bruge følgende kommando:
$ awk "{print $0}" example.txtshellHvis du derimod blot ønsker at se enkelte kolonner, kan du bruge en separat kommando. I vores tilfælde er det den første og tredje kolonne:
$ awk "{print $1, $3}" example.txtshellDette vil give følgende resultat:
Washington D.C America
Paris Europe
Hanoi Asia
Abuja Africa