Awk: Übungen: Aktionen: Lsg40
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