Expresiones Booleanas - AWK

Una expresión booleana es una combinación de expresiones de comparación o expresiones matching, usando los operadores booleanos "o" (`||'), "y" (`&&'), y "not" (`!'), usando los paréntesis para controlar el anidamiento. La veracidad de la expresión booleana se calcula combinando la veracidad de las expresiones que la componen.
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
















Publicar un comentario

0 Comentarios