AWK es un excelente lenguaje de programación, tan flexible que nos permite procesar datos sobre archivos de texto plano de forma muy simple.
El ejemplo que vamos a ver hoy es como podemos extraer datos del archivo /etc/passwd donde se encuentran los usuarios del sistema GNU/Linux.
El script es el siguiente:
#!/usr/bin/awk -f
# | ********************************
# | Reporte del archivo /etc/passwd
# |
# | Autor: Ing. Daniel M. Maldonado
# | Web: www.elcodigok.com.ar
# | Contacto:
# | @elcodigok
# |
# | ********************************
BEGIN { FS = ":" }
BEGIN { USUARIOS = 0; SISTEMA = 0 }
BEGIN { printf "%-11s%-15s%-15s\n","ID","Usuario","Nombre" }
$3 >= 1000 { printf "%-11s%-15s%-15s\n",$3,$1,$5 ; USUARIOS += 1}
$3 < 1000 { SISTEMA += 1}
END { print "--------------------------" }
END { print USUARIOS " Usuarios registrados" }
END { print SISTEMA " Usuarios de Sistema" }
Lo primero que hacemos es definir un separador de campos, para este ejemplo cada campo del archivo /etc/passwd se encuentra separado por ":"
Inicializamos las variables USUARIOS y SISTEMA a cero (0) para utilizarlos como contadores. Luego se imprime un encabezar con un formato similar a las tabulaciones. $3 hace referencia al campo que corresponde al User ID y si este es mayor a 1000 es por que hace referencia a un usuario registrado, de lo contrario es un usuario de sistema que provablemente se encarga de ejecutar algún proceso como www-data o similares.
Finalmente el script muestra la cantidad de usuarios registrados y de sistema como resultado de sus correspondiente sumas.
Para poder hacer uso de este script solo tenemos que copiarlo y almacenarlo en un archivo por ejemplo listado_usuarios.awk, a éste le damos permiso de ejecución
$ chmod u+x listado_usuarios.awk
y finalmente ejecutamos
$ ./listado_usuarios.awk /etc/passwd
Realmente simple y rápido para comprender el manejo de AWK y el procesamiento de información.
Saludos!
martes, 4 de febrero de 2014
Suscribirse a:
Comentarios de la entrada (Atom)
Entradas populares
-
Cada vez que utilizo Git para realizar el tracking y el control de versiones en un software más estoy convencido de las bondades que bri...
-
A la hora de crear arte hecho codigo fuente, muchas veces necesitamos un buen editor para escribir nuestro codigo, un compilador a mano o in...
-
Los Diagramas de Tiempo de UML se usan para mostrar el cambio en el estado o valor de uno o más elementos tomando en cuenta el factor tiemp...
-
Un diagrama de colaboración, se puede decir que es una forma alternativa al diagrama de secuencias a la hora de mostrar un escenario. Este t...
-
En la arquitectura de programación de niveles, el término “nivel” y “capa” no significa lo mismo ni tampoco son similares El término ...
-
Hoy les quería dejar un How-To de como hago para fusionar Symfony2 y el Bootstrap de Twitter , de esa forma lograr tener unas mejores vista...
-
Los Casos de Usos no forma parte de la llamada Fase de Diseño, sino parte de la fase de Análisis, respondiendo el interrogante ¿Qué? . De f...
-
Un estado es una condición durante la vida de un objeto, de forma que cuando dicha condición se satisface se lleva a cabo alguna acción o se...
-
Este es otro tip de Vim para poder sobrellevar todas las situaciones que se nos presenten, por alguna razón hoy me encontré con la sigui...
-
Yaml es un formato de serealización de datos inspirado básicamente en los lenguajes Python y XML que desde hace 13 años ya se transfor...
y si queremos listar los usuarios bloqueados
ResponderBorrar