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