En scriptfil

Vi skapar en fil enligt följande:

$ touch phones.awk

Öppna filen i din editor.

#Startläge

Vi börjar med att flytta in föregående kommando. Här kan vi hoppa över första raden på följande sätt:

#!/usr/bin/env awk

BEGIN {
    FS=","
    OFS="="
}
NR==1 { next }
{
    print $2,$1
}

Vi säger att om NR är 1 så kör nästa rad med hjälp av nyckelordet next. Resultatet blir då samma som tidigare och vi exekverar scriptet med flaggan -f <filename>:

$ awk -f phones.awk phones.txt
iPhone X=Apple
iPhone 11=Apple
Galaxy S20=Samsung
Galaxy S21+=Samsung
Galaxy Note20=Samsung

Utskriften är inte så spännande så vi jobbar lite mer med den:

#!/usr/bin/env awk

BEGIN {
    FS=","
    print "\n---- Start på rapport ----\n"
}
NR==1 { next }
{
    print NR-1 ": " $1,$2,$3
}
END {
    print "\n---- Slut på rapport ----\n"
}

Kör kommandot igen:

$ awk -f phones.awk phones.txt

---- Start på rapport ----

1: Apple iPhone X 8000
2: Apple iPhone 11 10000
3: Samsung Galaxy S20 9500
4: Samsung Galaxy S21+ 11500
5: Samsung Galaxy Note20 8000

---- Slut på rapport ----

Vi ser att vi jobbade både med BEGIN och med END. Vi använder även den inbyggda variabeln NR. Notera att vi även kunde använda aritmetik direkt på variabeln.

#Revision history

  • 2020-02-10: (A, lew) Första versionen.

Document source.