Zum Inhalt springen

Awk: Übungen: Aktionen: Lsg40

Aus Wikibooks

Lösungen

[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++.

2
-1

Die Dekrementierung erfolgt vor Abarbeitung des print-Befehls.

0
0
1
1
6
1


← zurück