El comando 'AWK' de Linux es una utilidad poderosa para diferentes operaciones en archivos de texto como buscar, reemplazar e imprimir. Es fácil de usar con datos tabulares porque divide automáticamente cada línea en campos o columnas en función del separador de campo. Cuando trabaja con un archivo de texto que contiene datos tabulares y desea imprimir los datos de una columna en particular, entonces el comando 'AWK' es la mejor opción. En este tutorial, le mostraremos cómo imprimir la primera columna y/o última columna de una línea o archivo de texto.
Imprima la primera columna y/o última columna de una salida de comando
Muchos comandos de Linux, como el comando 'LS', generan salidas tabulares. Aquí, le mostraremos cómo imprimir la primera columna y/o última columna desde la salida del comando 'ls -l'.
Ejemplo 1: imprima la primera columna de una salida de comando
El siguiente comando 'AWK' imprimirá la primera columna desde la salida del comando 'ls -l'.
$ ls -l
$ ls -l | Awk 'imprimir $ 1'
La siguiente salida se producirá después de ejecutar los comandos anteriores.
Ejemplo 2: imprima la última columna de una salida de comando
El siguiente comando 'AWK' imprimirá la última columna desde la salida del comando 'ls -l'.
$ ls -l
$ ls -l | Awk 'imprimir $ nf'
La siguiente salida se producirá después de ejecutar los comandos anteriores.
Ejemplo 3: imprima las primeras y últimas columnas de una salida de comando
El siguiente comando 'AWK' imprimirá las primeras y últimas columnas desde la salida del comando 'ls -l'.
$ ls -l
$ ls -l | Awk 'imprimir $ 1, $ nf'
La siguiente salida se producirá después de ejecutar los comandos anteriores.
Imprima la primera columna y/o última columna de un archivo de texto
Aquí, le mostraremos cómo usar el comando 'AWK' para imprimir la primera columna y/o última columna de un archivo de texto.
Crear un archivo de texto
Para seguir junto con este tutorial, cree un archivo de texto llamado clientes.TXT con el siguiente contenido. El archivo contiene tres tipos de datos del cliente: nombre con ID, correo electrónico y número de teléfono. El carácter de pestaña (\ t) se usa para separar estos valores.
Nombre de correo electrónicoEjemplo 4: imprima la primera columna de un archivo sin usar un separador de campo
Si no se usa un separador de campo en el comando 'AWK', entonces se usa un espacio como separador de campo predeterminado. El siguiente comando 'AWK' imprimirá la primera columna utilizando el separador predeterminado.
$ CAT CLIENTES.TXT
$ AWK 'imprimir $ 1'.TXT
La siguiente salida se producirá después de ejecutar los comandos anteriores. Tenga en cuenta que la salida muestra solo el nombre del cliente porque el espacio se aplica como separador de campo. La solución a este problema se muestra en el siguiente ejemplo.
Ejemplo 5: Imprima la primera columna de un archivo con un delimitador
Aquí, \ t se usa como un separador de campo para imprimir la primera columna del archivo. La opción '-f' se usa para establecer el separador de campo.
$ CAT CLIENTES.TXT
$ awk -f '\ t' 'imprimir $ 1'.TXT
La siguiente salida se producirá después de ejecutar los comandos anteriores. El contenido del archivo se divide en tres columnas basadas en \ t. Por lo tanto, el nombre y la identificación del cliente se imprimen como la primera columna. Si desea imprimir el nombre del cliente sin la ID, continúe con el siguiente ejemplo.
Si desea imprimir el nombre del cliente sin la ID, entonces debe usar '-' como separador de campo. El siguiente comando 'AWK' imprimirá el nombre del cliente solo como la primera columna.
$ CAT CLIENTES.TXT
$ awk -f ' -' '' imprimir $ 1 'clientes.TXT
La siguiente salida se producirá después de ejecutar los comandos anteriores. La salida incluye los nombres completos de los clientes sin sus IDS.
Ejemplo 6: imprima la última columna de un archivo
El siguiente comando 'AWK' imprimirá la última columna de clientes.TXT. Debido a que no se usa un separador de campo en el comando, el espacio se usará como separador de campo.
$ CAT CLIENTES.TXT
$ AWK 'imprimir $ nf'.TXT
La siguiente salida se producirá después de ejecutar los comandos anteriores. La última columna contiene números de teléfono, como se muestra en la salida.
Ejemplo 7: Imprima las primeras y últimas columnas de un archivo
El siguiente comando 'AWK' imprimirá las primeras y últimas columnas de los clientes.TXT. Aquí, la tab (\ t) se usa como separador de campo para dividir el contenido en columnas. Aquí, la tab (\ t) se usa como separador para la salida.
$ CAT CLIENTES.TXT
$ awk -f "\ t" 'imprimir $ 1 "\ t" $ nf' CLIENTES.TXT
La siguiente salida aparecerá después de ejecutar los comandos anteriores. El contenido se divide en tres columnas por \ t; La primera columna contiene el nombre y la identificación del cliente y la segunda columna contiene el número de teléfono. La primera y última columna se imprimen utilizando \ t como separador.
Conclusión
El comando 'AWK' se puede aplicar de diferentes maneras para obtener la primera columna y/o última columna de cualquier salida de comando o de datos tabulares. Es importante tener en cuenta que se requiere un separador de campo en el comando, y si no se proporciona uno, entonces se usa el espacio.