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 } '