Cómo leer datos de columna de un archivo de texto en un script de shell bash

Cómo leer datos de columna de un archivo de texto en un script de shell bash

Una de las tareas que se pueden realizar utilizando un script de shell bash es leer datos de un archivo de texto y procesarlo. En este artículo, analizaremos cómo leer una columna específica de datos de un archivo de texto o cómo leer varias columnas de un archivo de texto en un script de shell bash.

Cómo leer datos de columna de un archivo de texto en un script de shell bash

La lectura de columnas específicas de datos de un archivo de texto en un script de shell bash es útil en varias aplicaciones como en tareas repetitivas automatizadas, desarrollo de software, gestión de texto y mucho más, todo lo que necesita hacer es leer esa columna respectiva. Para una ilustración adicional debajo de la sintaxis que uno puede seguir para leer cualquier columna de cualquier archivo de texto:

#!/bin/bash
Mientras lea la línea; hacer
# Use AWK para extraer el tercer campo (el nombre) de cada línea
= $ (echo $ line | awk 'print $')
# imprime el nombre
Echo $
hecho < .TXT


1: El script comienza especificando el intérprete de shell para usar con la línea shebang #!/bin/bash.

2: El bucle while lee el contenido del archivo de texto línea por línea, utilizando el comando leer y para cada línea que se lee, el asombrar El comando se usa para extraer el campo (el nombre) de la línea. El comando AWK usa el patrón Imprimir $ Para seleccionar el campo, que luego se almacena en el nombre de la variable.

3: Finalmente, el script imprime el valor de la variable de nombre usando el comando echo y este proceso se repite para cada línea en el archivo hasta que no haya más líneas para leer.

Para la comprensión del lector, he usado la sintaxis dada anterior para leer una columna del archivo de texto y a continuación está el código para ello:

#!/bin/bash
Mientras lea la línea; hacer
# Use AWK para extraer el segundo campo de cada línea
info = $ (echo $ line | awk 'imprimir $ 3')
# Imprimir la edad
Echo $ info
hecho < company_details.txt


Aquí en el código, he leído la tercera columna de cada línea del archivo de texto llamado Detalles de la Compañía, el comando AWK se usa para extraer el tercer campo (el nombre) de la línea. El comando AWK usa el patrón imprimir $ 3 para seleccionar el tercer campo, aquí está la salida de mi código de ejemplo:


A continuación se muestra el archivo de texto que creé para fines de demostración:

Cómo leer varias columnas de un archivo de texto en el script de shell bash

Si desea leer más de una columna o un archivo, entonces todo lo que necesita para agregar el número de columna y el resto es el mismo, así que aquí está el código para leer más de una columna del archivo de texto:

#!/bin/bash
# Esta línea especifica que el script debe ser interpretado por el shell bash.
# recorre cada línea del archivo
Mientras lea la línea; hacer
# Use AWK para extraer el tercer campo (el nombre) de cada línea
info = $ (echo $ line | awk 'imprimir $ 1, $ 2, $ 3')
# imprime el nombre
Echo $ info
hecho < company_details.txt


A continuación se muestra la salida del código que lee las tres columnas en el archivo de texto:

Conclusión

Los scripts bash son una herramienta versátil que se puede utilizar para automatizar varias tareas, especialmente cuando se trata de sistemas basados ​​en UNIX. Al combinar los comandos de bucle y otros shell, se puede leer fácilmente los datos de columna de un archivo de texto y realizar varias operaciones con los datos.