Inicio / Wikis / Tutoriales / Nociones de programación en awk - Uso de variables operadores y expresiones

Nociones de programación en awk - Uso de variables operadores y expresiones

(2 opiniones)
Tutorial creado por Antonio Castro Snurmacher (Madrid 01/01/2000).. Extraido de: http://www.mononeurona.org/index.php?idp=462
27 de Octubre de 2005
Linux

8 - Uso de variables operadores y expresiones

En 'awk' podemos usar toda clase de expresiones presentes en cualquier lenguaje. Cualquier identificador que no corresponda con una palabra reservada se asumirá que es una variable. Para asignar un valor se usa el operador '='

Vamos a editar un fichero que llamaremos 'ejemplexpr.awk' con algunas expresiones aritméticas.

|| { contador = 0; # Pone a cero la variable contador contador ++; # Incrementa en 1 la variable contador contador +=10; # Incrementa en 10 la variable contador. contador *=2 # Multiplica por 2 la variable contador print contador contador = ( 10 + 20 ) / 2 ; print contador contador = sqrt ( 25 ) ; # Raiz cuadrada de 25 print contador } ||


Lo ejecutamos y observamos el resultado.

|| $ echo | awk -f ejemplexpr.awk 22 15 5 ||


No podemos explicar en detalle todo el lenguaje 'awk'. Se trata de que comprenda su utilidad y de que sea capaz de utilizarlo para determinadas tareas en las cuales resulta extremadamente útil.

Algunas expresiones parecen inspiradas en el lenguaje C. Otras parece que han servido de inspiración para el lenguaje Perl. En realidad muchos lenguajes usan expresiones parecidas.

Por ello vamos a resumir en forma de tabla una serie de elementos que intervienen en las expresiones que 'awk' es capaz de manejar. Pero no vamos a explicar en detalle cada cosa. En lugar de eso daremos una descripción resumida y procuraremos que los ejemplos posteriores tengan un poco de todo.

||
Operadores aritméticos
||
|| + || Suma ||
|| - || Resta ||
|| * || Multiplicación ||
|| / || División ||
|| % || Módulo (resto) ||
|| ^ || Potenciación ||
||
Operadores de asignación.
||
|| var = expr || Asignación ||
|| var ++ || Incrementa la variable en una unidad ||
|| var -- || Decrementa la variable en una unidad ||
|| var += expr_aritm || Incrementa la variable en cierta cantidad ||
|| var -= expr_aritm || Decrementa la variable en cierta cantidad ||
|| var *= expr_aritm || Multiplica la variable por cierta cantidad ||
|| var /= expr_aritm || Divide la variable por cierta cantidad ||
|| var %= expr_aritm || Guarda en la variable el resto de su división por cierta cantidad ||
|| var ^= expr_aritm || Eleva el valor de la variable en cierta cantidad ||
||
Operadores lógicos y de relación.
||
|| expr_aritm
expr_aritm || Comparación de igualdad || || expr_aritm != expr_aritm || Comparación de desigualdad ||
|| expr_aritm < expr_aritm || Comparación menor que ||
|| expr_aritm > expr_aritm || Comparación mayor que ||
|| expr_aritm <= expr_aritm || Comparación menor igual que ||
|| expr_aritm >= expr_aritm || Comparación mayor igual que ||
|| expr_cad ~ expr_regular || Se ajusta al patrón ||
|| expr_cad !~ expr_regular || No se ajusta al patrón ||
|| expr_logica || expr_logica || Operador lógico AND (Y) ||
|| expr_logica && expr_logica || Operador lógico OR (O) ||
|| ! expr_logica || Operador lógico NOT (NO) ||
||
Funciones aritméticas.
||
|| atan2( y, x) || Retorna el arco-tangente de y/x en radianes ||
|| cos(x) || Retorna el coseno de x en radianes ||
|| exp(x) || Retorna el exponencial de x (e^x) ||
|| int(x) || Retorna el valor entero de x truncado la parte decimal ||
|| log(x) || Retorna el logaritmo neperiano de x ||
|| rand() || Retorna un valor seudo aleatorio comprendido entre 0 y 1 ||
|| sin(x) || Retorna el seno de x en radianes ||
|| sqrt(x) || Retorna la raiz cuadrada de x ||
|| srand(x) || Inicializa la semilla para generar números pseudoaleatorios ||
||
Funciones para usar con cadenas de caracteres
||
|| gsub(r, s, t) || Sustituye 's' globalmente en todo 't' cada vez que se encuentre un
patrón ajustado a la expresión regular 'r'. Si no se proporciona 't'
se toma $0 por defecto.
Devuelve el número de sustituciones realizado. ||
|| index(cadena, subcadena) || Retorna la posición de la 'subcadena' en 'cadena' (Primera posición = 1) ||
|| length(cadena) || Devuelve la longitud de la 'cadena'. Tomará $0 por defecto si no se
proporciona 'cadena' ||
|| split(cadena, array, sep) || Parte 'cadena' en elementos de 'array' utilizando 'sep' como separador.
Si no se proporciona 'sep' se usará FS. Devuelve el número de elementos
del array ||
|| sub(r, s, t) || Sustituye 's' en 't' la primera vez que se encuentre un patrón
ajustado a la expresión regular 'r'. Si no se proporciona 't' se toma $0
por defecto.
Devuelve 1 si tiene éxito y 0 si falla ||
|| substr(cadena, beg, len) || Devuelve una subcadena de 'cadena' que empieza en 'beg' con una longitud
'len'. Si no se proporciona longitud devuelve hasta el final de la cadena
desde 'beg' ||
|| tolower(cadena) || Pasa a minúsculas ||
|| toupper(cadena) || Pasa a mayúsculas ||
||
Algunas otras funciones
||
|| match(cadena, expr_reg) || Indica si 'cadena' se ajusta o no a la expresión regular 'expr_reg' ||
|| system(comando) || ||
|| sprintf(formato [, expr-list] ) || Para obtener salida con formato. ||
Valora este capítulo: (2 opiniones)
Autor y licencia de 'Nociones de programación en awk - Uso de variables operadores y expresiones'
Antonio Castro Snurmacher (Madrid 01/01/2000). Extraído de: http://www.mononeurona.org/index.php?idp=462

Creative Commons License
Esta obra está bajo una licencia de Creative Commons.
Este trabajo está licenciado bajo la Creative Commons License. 1999-2005 © :: MonoNeurona.org ::
Este contenido ha sido recopilado por el equipo de Wikilearning. Todo el contenido recopilado se ha obtenido respetando y comunicando en nuestro site la licencia de cada fuente.
Wikilearning tiene permiso expreso por escrito de los autores para publicar los contenidos que ha extraído de otras webs, incluyendo su uso comercial.

Opiniona sobre 'Nociones de programación en awk - Uso de variables operadores y expresiones' (2)

Tu nombre debe tener tres caracteres como mínimo.
Es necesario que te des de alta con una cuenta de correo válida.
Es necesario que te des de alta con una cuenta de correo válida.
El contenido del título de tu opinión debe tener tres caracteres como mínimo.
Es obligatorio que selecciones una valoración del recurso.
El contenido del comentario de tu opinión debe tener tres caracteres como mínimo.

Opina sobre este tutorial



* Valoración:
* Nombre:
* Correo electrónico:
* Título:
* Comentario:

Wikis relacionados con 'Nociones de programación en awk - Uso de variables operadores y expresiones'

PHP es un lenguaje en que usualmente el tipo de dato de una variable no... Más »
PHP es un lenguaje de programación diseñado específicamente para aplicaciones Web; las características más destacables... Más »
PHP es un lenguaje de programación diseñado específicamente para aplicaciones Web; las características más destacables... Más »
Como es sabido, el concepto de función metalingüística y su ámbito de aplicación han quedado... Más »
Manual Compacto para nuevos usuarios.
¿Estás seguro de que deseas eliminar este capítulo?