Awk: Übungen: Aktionen: Lsg40

Aus Wikibooks

Lösungen[Bearbeiten]

zu 1[Bearbeiten]

3
0

Warum? Der Feldoperator bindet stärker, die Inkrementierung erfolgt aber erst nach Abarbeitung des print-Befehls.

Zur Verdeutlichung: Die Befehlsfolge

print $2++
print $2

könnte durch

i=$2+0 
print i
i+=1
print i

ersetzt werden. Beide Programmabschnitte liefern das gleiche Ergebnis.

Warnung: Theoretisch kann man sich die Anweisung $2++ zur Verdeutlichung der Priorität auch als ($2)++ vorstellen. Das sollte aber auf das Gedächtnis beschränkt bleiben und nicht Eingang in den awk-Programmcode finden. Das funktioniert nämlich nicht - Syntax Error. (i)++ ist für awk-Parser eben nicht das gleiche wie i++.

zu 2[Bearbeiten]

2
-1

Die Dekrementierung erfolgt vor Abarbeitung des print-Befehls.

zu 3[Bearbeiten]

0
0

zu 4[Bearbeiten]

1
1

zu 5[Bearbeiten]

6

zu 6[Bearbeiten]

1


← zurück