8.5 Actions
Action statements sind in geschweifte { Klammern } eingeschlossen. Actions sind i.d.R. Zuweisungen, bedingte Anweisungen, Schleifen und I/O-Anweisungen
8.5.1 Operatoren
Die Operatoren von awk sind mit den Operatoren von C vergleichbar.
= += -= Zuweisungsoperatoren können auch in der verkürzten *= /= %= ^= Form op= verwendet werden. ?: Der 'conditional expression' von C in der Form expr1 ? expr2 : expr3. Wenn expr1 wahr ist, wird der Wert von expr2 verwendet, andernfalls der Wert von expr3. || Logical OR. && Logical AND. $1 ~ /^d/ && $3 ~ user && $9 ~ /^[^\.] /{ Summe += $5 } ~ Match mit Regular Expression !~ Negierter Match. Achtung: Der RE sollte nur auf der rechten Seite verwendet werden. /RE1/ ~ /RE2/ wird vom awk wie folgt interpretiert (( $0 ~ /RE1/) ~ /RE2/ ) < > Vergleichsoperatoren <= >= != == blank String concatenation. + - Addition and Subtraktion. * / % Multiplikation, Division und Modulus (Divisionsrest). + - ! Unary Plus, unary Minus, und logische Negation. ^ Potenzierung (** ist auch möglich sowie **= als Zuweisungsoperator). ++ -- Increment und Decrement, Beide können als prefix und postfix verwendet werden. x++ ; --z $ Field reference.
8.5.2 übungsaufgaben I
Was geben folgende Anweisungen aus ?1. ls -l | awk '$3 ~ "root" || $3 ~ "hahn" ' 2. ls -l | awk '$3 ~ /root|hahn/ ' 3. awk -F: ' { print $1 $3 } ' /etc/passwd | more 4. awk -F: ' { print $1, $3 } ' /etc/passwd | more 5. awk -F: ' { print $1 "," $3 } ' /etc/passwd | more 6. ls -l | awk ' $1 ~ /^d/ {print $1, $9} ' 7. ls -l | awk ' $1 ~ /^d/ && $3 ~ "hahn" && $9 !~ /[^\.]/ { print $5, $9 } 8. ls -l | awk ' $1 ~ /^...s/ ' 9. ls -l | awk ' $3 ~ /root/ && $1 ~ /^........w/ ' 10. ls -l | awk ' $5 == 0 && $1 ~ /w+/ { print $1, $2, $5, $9 } '