Awk

1,412 views

Published on

Awk

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,412
On SlideShare
0
From Embeds
0
Number of Embeds
23
Actions
Shares
0
Downloads
14
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Awk

  1. 1. AWK ALFERD A HO, PETER W EINBERGER Y BRIAN K ERNIGHAN
  2. 2. QUE ES AWK <ul><li>AWK es un lenguaje de programación diseñado para procesar datos basados en texto, ya sean ficheros o flujos de datos. </li></ul><ul><li>fue una de las primeras herramientas en aparecer en Unix y ganó popularidad como una manera de añadir funcionalidad a las tuberías de Unix. Los comandos de AWK son las declaraciones sustituidas por acción , pueden incluir llamadas a funciones, asignación de variables, cálculos, o cualquier combinación de estas. AWK contiene soporte propio para muchas funciones; muchas otras son provistas por las distintas versiones de AWK. Incluso algunas versiones soportan la inclusión de librerías dinámicamente enlazadas, que pueden proveer aún más funciones. </li></ul>
  3. 3. LINEAS DE COMANDOS <ul><li>Awk –F: ‘$3~/Administración/ {print $0}’ datos </li></ul><ul><li>Como efecto de la orden, awk anterior, se recorre todas las líneas del archivo de datos buscando aquellas que cumpla la condición: </li></ul><ul><li>$3~/administración/: condición cierta si el tercer campo ($3) contiene (~) el patrón /Administración/, es decir, si contiene los caracteres Administración. </li></ul><ul><li>Awk –F”: “ ‘{print $1 “ “ $3}’ datos </li></ul><ul><li>Awk –F”: “ ‘{print “nombre: “ $1 “ titulacion: “ $3 “ edad: “ $2} ‘ datos </li></ul>
  4. 4. SEPARADORES DE CAMPO <ul><li>Uno de los aspectos mas útiles en relación al awk es que a diferencia del &quot;sed&quot;, awk puede dividir las líneas en campos a través de un separador de campo indicado en el script o en la línea de comandos. Si no se indica ninguno se tomara como separador de campo un espacio o tabulador. Usando la opción -F de la línea de comandos o la variable FS desde un programa hecho en awk se puede especificar un nuevo separador de campo. </li></ul><ul><li>cat /etc/passwd | awk -F : '{print $5}' </li></ul><ul><li>cat /etc/passwd | awk -F : '{print $5,$6}' </li></ul>
  5. 5. VARIABLES <ul><li>existe la variable NR que llevara la cuenta de los registros que mostremos, Por ejemplo supongamos que necesitamos obtener un listado largo de un directorio, pero solo queremos ver los permisos, el nombre del archivo y el número de registro que a pasado por el awk. </li></ul><ul><li>- ls -l | awk '{ print NR&quot; &quot;$1&quot; &quot;$9}' </li></ul><ul><li>¿que ocurre si no sabemos la posición del último campo o esta varia? Para esto esta la variable NF que lleva la cuenta de la cantidad de campos de cada registro. Por ello en lugar de la anterior forma podriamos poner: </li></ul><ul><li>- ls -l | awk '{ print NR&quot; &quot;$1&quot; &quot;$NF}' </li></ul>

×