Blog
x86 Support
El término AWK son las iniciales de sus diseñadores orginales:
Alfred V. Aho.
Peter J. Weinberger.
Brian W. Kernighan.
Fue creado en 1977 en los Laboratorios Bell de AT&T y se le considera de dos formas:
En su nivel mas básico, AWK busca patrones específicos defínidos por el usuario dentro de alguna unidad de texto, cuando una linea de texto coincide con el patrón definido por el usuario, AWK realiza una serie de acciones definidas sobre esa linea continuando de esta manera hasta el final de los archivos de entrada.
Para este ejemplo usaremos la salida del archivo passwd y lo almacenaremos en un archivo de texto que consultaremos para ejecutar los comandos de awk.
ubuntu@ubuntu:~$ cat /etc/passwd > passwd.txt

Para validar si se guardo correctamente la información ejecutaremos un wc -l para contar las lineas que tiene el archivo generado con el siguente comando:
ubuntu@ubuntu:~$ wc -l passwd.txt

Como vemos en la salida del comando nos indica que tiene 50 lineas de texto, mostraremos solo las primeras 10 lineas con el siguiente comando:
ubuntu@ubuntu:~$ head passwd.txt

Observemos que tiene 2 caracteres muy visibles los dos puntos y la diagonal, ahora vamos a usar el parametro -F para indicarle a AWK cual es el caracter que vamos a usar para separar estas lineas con el siguente comando:
ubuntu@ubuntu:~$ awk -F: '{print $1}' passwd.txt

El comando ejecutado de AWK con el parametro -F es la forma abreviada de --field-separator y se utiliza para definir el separador que se utilizara para separar las lineas del archivo de texto. AWK utiliza cualquier secuencia de espacios en blanco, tabulaciones, etc, como separador de campo por defecto, al usar el parametro -F le indicamos a AWK que la entrada esta delimitada por dos puntos ( : ), despues '{print $1}' es la acción que se ejecutara por el patrón defínido anteriormente y este solo imprimira lo que esta antes de los dos puntos como se ve en la imagen, al final pasamos el archivo de texto en el que buscara el patrón defínido.
El signo de dolar y el número 1 undica que se imprima solo la primer columna o contenido que se encuentra antes de los dos puntos, si cambiamos el 1 por el 2 nos mostrara una salida diferente:
ubuntu@ubuntu:~$ awk -F: '{print $2}' passwd.txt

Como observamos solo imprime lo que esta en la siguiente columna como lo definimos anteriormente. Perfecto!
Pasaremos ahora a la última separación por la diagonal de la siguiente forma, recordemos primero la estructura del archivo con el siguente comando:
ubuntu@ubuntu:~$ head -1 passwd.txt
Esto cuando escribimos head -1 le indicamos a Linux que solo nos muestre la primer linea inicial del archivo.

Imprimiremos el final de la linea donde dice bash usando ahora el separador de la diagonal con el siguiente comando:
ubuntu@ubuntu:~$ awk -F/ '{print $4}' passwd.txt | head -1
De esta forma le indicamos al final del comando que solo imprima la primer linea como se muestra en la siguiente imagen:

Finalmente asi es una de las formas como podemos separar información que hay en un archivo de texto desde la terminal de comandos de Linux.
© 2025 x86support.com.mx

