UNIX – Construyendo una serie de comandos con AWK.-

Awk es un lenguaje de programación creado para procesar texto de ficheros y flujos de datos muy utilizado en ambientes Unix, y disponible en literalmente todas las distribuciones de GNU/Linux, es más, es mencionado en la Single Unix Specification como una de las utilidades necesarias en todo sistema Unix, este gano popularidad como una manera de añadir mas funcionalidad a las tuberías de Unix; Sed y Awk inspiraron a Larry Wall a escribir Perl.

En este articulo vamos a aprender a utilizar AWK como una forma de construir comandos para ser ejecutados en serie, como por ejemplo; mover todos los ficheros encontrados con el comando locate a un directorio o apagar una serie de clientes windows como explicamos en un articulo pasado.

Para que vayan entendiendo mejor vamos a ir escribiendo el comando por partes, el problema que se plantea es el siguiente.

1) Se necesita copiar todos los ficheros que terminen en “conf” del directorio /etc a la carpeta /home.

Lo primero que tenemos que plantearnos es lo que vamos hacer, en este caso es encontrar todos los ficheros que empiezen con .conf del directorio /etc, esto lo podemos hacer con el comando locate de la siguiente manera:

locate /etc/*conf

Esto nos lanzaria algo parecido a esto:

/etc/adduser.conf
/etc/ca-certificates.conf
/etc/debconf.conf
/etc/deluser.conf
/etc/gai.conf

Ahora vamos a construir el comando, el problema nos dice que tenemos que copiar estos ficheros a la carpeta /home, a el comando anterior le añadimos una tuberia y usamos awk de la siguiente manera para construir la serie de comandos:

Esto nos lanzaria algo parecido a esto:

En el comando anterior hemos añadido una tuberia para que la salida del comando locate la mande a la entrada awk, entonces el comando awk ha impreso todas las lineas (Para eso la variable $0) con la cadena “cp -rf ” atras, y la cadena “/home” delante, el resultado es una serie de comandos a los cuales solo le faltaria otra tuberia para poder ejecutarlo.

Para ejecutar estos comandos simplemente añadimos otra tuberia y mandamos la salida a el comando bash, para que los ejecute por linea, por ejemplo:

Guiandonos por este ejemplo podemos construir comandos según las necesidades que tengamos…..

Esta entrada fue publicada en Unix - Linux. Guarda el enlace permanente.

1 respuesta a UNIX – Construyendo una serie de comandos con AWK.-

  1. MARCO dijo:

    Muchas gracias.
    Me sirvio mucho

Deja un comentario

Tu dirección de correo electrónico no será publicada.

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.