Lær at mestre awk: filtreringsprocessen

/ 3 minutters læsning

awk er et genialt værktøj til filtrering, udtræk og manipulation af tekst. Lær hvordan du bruger det her på min blog.

Introduktion til awk i Linux & macOS

Mens jeg scrollede gennem min Discord-server, stødte jeg på et spørgsmål om filtrering af output fra kommandolinjen. I stedet for at svare direkte besluttede jeg at skrive denne artikel, så flere kunne få gavn af svaret. Kære læser, jeg håber, du også finder dette nyttigt! 🥳

Hvad er awk?

awk er et værktøj der kommer default i de fleste Linux-distributioner og macOS, der er fremragende til filtrering, udtræk og manipulation af tekst. Oprindeligt skabt i 1970'erne er det siden blevet en hjørnesten i rigtig manges daglige workflow - inklusiv mit. Selvom awk deler nogle karakteristika med andre kommandolinjeværktøjer som sed og grep, er det langt mere kraftfuldt og fleksibelt.

Sammenligning med sed og grep

Mens sed excellerer i tekstsubstitution og grep primært bruges til tekstsøgning, kan awk gøre begge dele og meget mere. Det kan behandle en tekstfil linje for linje og felt for felt, hvilket gør det yderst velegnet til datamanipulation.

Kodeeksempler med output

Lad os se på nogle kodeeksempler for bedre at forstå awk. Hvert kommandoeksempel viser også det forventede output.

Filtrering af linjer, der indeholder "at"

printf 'gate
apple
what
kite
' | awk '/at/'

Output:

gate
what

Dette svarer til at bruge grep 'at' eller sed -n '/at/p'.

Filtrering af linjer, der IKKE indeholder "e"

printf 'gate
apple
what
kite
' | awk '!/e/'

Output:

what

Dette svarer til at bruge grep -v 'e' eller sed -n '/e/!p'.

Udskrivning af det første felt i hver linje

echo -e "field1 field2 field3
fieldA fieldB fieldC" | awk '{print $1}'

Output:

field1
fieldA

Dette udskriver "field1" og "fieldA", som er de første felter i hver linje.

Udskrivning af summen af det første og andet felt

echo -e "10 20
30 40" | awk '{print $1 + $2}'

Output:

30
70

Dette tager summen af de første to felter i hver linje og udskriver dem.

Afsluttende bemærkninger

Jeg håber, denne introduktion har givet dig et lille indlbik i hvad awk kan tilbyde! awk er et utroligt kraftfuldt værktøj, og vi har kun ridset overfladen her. Jeg tænker at lave en række opfølgende artikler med flere sjove ting at bruge awk til, så husk at hold øje med bloggen 🤪

Vi ses 👋🏻🦒🐧