miércoles, 22 de abril de 2015

LINUX - COMANDO AWK


LINUX

COMANDO awk

Procesamiento de archivos generalizado


El comando awk es un lenguaje de programación. 

Sin embargo, muchas cosas se pueden hacer sin mayores conocimientos de awk.
awk lee lineas de un archivo. Cada linea se parte en campos, según un separador, por defecto espacio en blanco. 
A cada linea se le aplica uno o mas procedimientos de awk. Un procedimiento consta de dos partes:

  /patron/{accion}

El patrón es una expresión regular, igual que grep o sed; la acción es un "programa", que se aplica a los campos de cada linea.
Veamos unos ejemplos:

   awk '{print $1}' arch

Notase el uso de las comillas, necesarias para evitar problemas con el shell. Imprime el primer campo de cada linea-- es decir, imprime la primera columna de un archivo.

   awk '{print $2, $1}' arch

Imprime la segunda, seguida por la primera, columna de un archivo
También pueden usarse expresiones aritméticas:

   awk '{print $1*$1, $2 - 5.0}' arch 

Lo cual imprime el cuadrado de la primera columna, etc.
Seleccionemos las lineas que contienen el texto "Hidrogeno"

   awk '/Hidrogeno/{print $1, $2*3.1416}' arch

Si el programa de awk es muy complicado, puede residir en un archivo:

   awk -f miprog arch

Esto le aplica el programa "miprog" al archivo awk.
Los seleccionadores BEGIN y END seleccionan procedimientos que se ejecutan respectivamente al principio y fin de procesamiento:

   awk '{s = s + $1}
         END{print s}' arch


(notase que se puede dar retorno de linea dentro de las comillas.) Este programa suma la primera columna del archivo arch. El programa se basa en la (afortunada) casualidad que awk pone todas las variables numéricas a cero inicialmente. Una variable (s en el ejemplo anterior es numérica cuando se usa aritmética-mente.)

Fuente: http://www.linuxfocus.org/



Os dejo este link donde encontrareis mucha mas información y ejemplos relacionados al comando awk:





1 comentario:

  1. El uso de awk no es sencillo, aunque según avancemos en contenidos de linux veréis que será más fácil entender conceptos como los parámetros ($1, $2) que aparecen en el artículo.

    Muchas gracias Bruno por la aportación.

    ResponderEliminar