Villkor och loopar

Många delar som arrayer, villkorshantering osv fungerar som vi är vana vid. Det kommer därför bara visas kortfattat om de olika delarna.

#if

Vi börjar med en ifsats. Vi skriver ut alla telefoner där det finns fler än 10 i lager:

#!/usr/bin/env awk

BEGIN {
    FS=","
    OFS="\t"
    print "\nMärke\tModell\t\tI lager\n"
}
NR==1 { next }
{
    if ($4 > 10) {
        print $1,$2,$4
    }
}

Resultatet blir då:

Märke   Modell          I lager

Apple   iPhone 11       14
Samsung Galaxy S21+     13

En ifsats är med andra ord inga konstigheter. Skulle vi behöva ett elseblock är syntaxen precis som du tror:

if (some comparison) {
    # do something
} else {
    # do something else
}

#loopar

En forloop i awk skrivs på “det vanliga” sättet:

for (initialization; condition; increment) {
    body
}

En whileloop likaså:

initialization

while (condition) {
  body
  increment
}

Det är med andra ord inga konstigheter att använda varken villkorshantering eller loopar i awk.

#Revision history

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

Document source.