Awk

Cómo imprimir la primera columna o la última columna o ambas usando 'awk'

Cómo imprimir la primera columna o la última columna o ambas usando 'awk'

El comando 'awk' de Linux es una poderosa utilidad 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 según el separador de campos. Cuando trabaja con un archivo de texto que contiene datos tabulares y desea imprimir los datos de una columna en particular, el comando 'awk' es la mejor opción. En este tutorial, le mostraremos cómo imprimir la primera columna y / o la última columna de una línea o archivo de texto.

Imprima la primera columna y / o la ú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 la última columna de la salida del comando 'ls -l'.

Ejemplo 1: imprimir la primera columna de una salida de comando

El siguiente comando 'awk' imprimirá la primera columna de 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: imprimir la última columna de una salida de comando

El siguiente comando 'awk' imprimirá la última columna de la salida del comando 'ls -l'.

$ ls -l
$ ls -l | awk 'print $ NF'

La siguiente salida se producirá después de ejecutar los comandos anteriores.

Ejemplo 3: imprimir la primera y la última columna de la salida de un comando

El siguiente comando 'awk' imprimirá la primera y la última columna de 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 la última columna de un archivo de texto

Aquí, le mostraremos cómo usar el comando 'awk' para imprimir la primera columna y / o la última columna de un archivo de texto.

Crea un archivo de texto

Para seguir 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 identificación, correo electrónico y número de teléfono. El carácter de tabulación (\ t) se utiliza para separar estos valores.

Nombre Correo electrónico Teléfono
Jonathon Bing - 1001 [correo electrónico protegido] 01967456323
Micheal Jackson - 2006 [correo electrónico protegido] 01756235643
Janifer Lopez - 3029 [email protected] 01822347865
John Abraham - 4235 j [correo electrónico protegido] 01590078452
Mir Sabbir - 2756 [correo electrónico protegido] 01189523978

Ejemplo 4: imprima la primera columna de un archivo sin utilizar un separador de campo

Si no se usa un separador de campo en el comando 'awk', se usa un espacio como separador de campo predeterminado. El siguiente comando 'awk' imprimirá la primera columna usando el separador predeterminado.

$ clientes cat.TXT
Clientes de $ awk 'print $ 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 separador de campo para imprimir la primera columna del archivo. La opción '-F' se usa para establecer el separador de campo.

$ clientes cat.TXT
$ awk -F '\ t' 'imprimir $ 1' clientes.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 identificación, continúe con el siguiente ejemplo.


Si desea imprimir el nombre del cliente sin la identificación, debe usar '-' como separador de campo. El siguiente comando 'awk' imprimirá el nombre del cliente solo como la primera columna.

$ clientes cat.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 identificadores.

Ejemplo 6: imprimir la última columna de un archivo

El siguiente comando 'awk' imprimirá la última columna de clientes.TXT. Debido a que no se usa ningún separador de campo en el comando, el espacio se usará como separador de campo.

$ clientes cat.TXT
Clientes de $ awk 'print $ 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 el resultado.

Ejemplo 7: imprimir la primera y la última columna de un archivo

El siguiente comando 'awk' imprimirá la primera y la última columna de clientes.TXT. Aquí, tab (\ t) se utiliza como separador de campo para dividir el contenido en columnas. Aquí, tab (\ t) se usa como separador para la salida.

$ clientes cat.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 la última columna se imprimen usando \ t como separador.

Conclusión

El comando 'awk' se puede aplicar de diferentes maneras para obtener la primera columna y / o la ú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, se usa el espacio.

Cómo impulsar FPS en Linux?
FPS significa Cuadros por segundo. La tarea de FPS es medir la velocidad de fotogramas en reproducciones de video o actuaciones de juegos. En palabras...
Los mejores juegos de Oculus App Lab
Si es propietario de un visor Oculus, debe estar informado sobre la descarga lateral. Sideloading es el proceso de instalación de contenido que no es ...
Los 10 mejores juegos para jugar en Ubuntu
La plataforma Windows ha sido una de las plataformas dominantes para juegos debido al gran porcentaje de juegos que se están desarrollando hoy para ad...