Las expresiones booleanas pueden ser usadas en cualquier lugar donde puedas usar una expresión de comparación o matching. Pueden ser usadas en sentencias if y while. Tienen valores numéricos (1 si es cierto, 0 si es falso), cuando el resultado de la expresión booleana se almacena en una variable, o usada en aritmética.
Además, toda expresión booleana es también un patrón booleano válido, por lo que puedes usarla como un patrón para controlar la ejecución de reglas.
Aquí están las des cripciones de los tres operadores booleanos, con un ejemplo de cada uno. Podría ser instructivo comparar estos ejemplos con los ejemplos análogos de patrones booleanos los cuales usan los mismos operadores booleanos en patrones en lugar de expresiones.
booleana1 && booleana2
Verdad si tanto booleana1 como booleana2 son ciertas. Por ejemplo, la siguiente sentencia imprime el registro actual si contiene ‘2400 y ‘foo’.
if ($0 ~ /2400/ && $0 ~ /foo/) print
La subexpresión booleana2 se evalúa solamente si la expresión booleana1 es cierta. Esto puede implicar una distinción cuando booleana2 contiene expresiones que tienen efectos laterales: en el caso de $0 ~ /foo/ && ($2== bar++),la variable bar no se incrementa si no aparece primeramente ‘foo’ en el registro.
booleana1 || booleana2
Esto es cierto si al menos una de las dos, o booleana1 o booleana2, es cierta. Por ejemplo, el siguiente comando imprime todos los regis tro del fichero de entrada ‘Lista-BBS’ que contengan ‘2400’ o ‘foo’ o ambos.
awk '{ if ($0 ~ /2400/ || $0 ~ /foo/) print }' Lista-BBS
La subexpresión booleana2 se evalúa solamente si la expresión booleana1 es falsa. Esto debe ser tenido en cuenta cuando booleana2 contiene expresiones que tienen efectos laterales.
!booleana
Verdad si booleana es falsa. Por ejemplo, el siguiente programa imprime todos los registros del fichero de entrada ‘Lista-BBS’ que no contengan la cadena ‘foo’.
awk '{ if (! ($0 ~ /foo/)) print }' Lista-BBS
0 Comentarios