LINUX
COMANDO awkProcesamiento 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 archivoTambié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/

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.
ResponderEliminarMuchas gracias Bruno por la aportación.