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 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ónico
Jonathon Bing - 1001 [email protected] 01967456323
Micheal Jackson - 2006 [email protected] 01756235643
Janifer López - 3029 [email protected] 01822347865
John Abraham - 4235 [email protected] 01590078452
Mir Sabbir - 2756 [email protected] 01189523978

Ejemplo 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.