Bash: mientras lee la línea

Bash While Read Line



Cuando trabaja en scripts bash, a veces puede que necesite leer un archivo línea por línea. Expliquemos con un ejemplo. Tiene algunos datos en un archivo de texto que deben ejecutarse o procesarse mediante un script. Entonces, ejecutar un script bash para procesar un archivo de texto es muy diferente. Debe seguir una sintaxis específica para leer un archivo línea por línea. Este artículo te ayudará a leer una línea de un archivo usando el bucle while en Bash.

Sintaxis básica de la línea while read

La siguiente sintaxis se usa para que el shell bash lea un archivo usando while loop:







tiempo leer -rlínea;
hacer
echo '$ línea';
hecho <fichero de entrada

La opción '-r' en la sintaxis mencionada anteriormente pasó al comando de lectura que evita que la barra invertida se escape de ser interpretada. La opción 'input_file' ha representado el nombre de su archivo al que desea acceder mediante el comando 'leer'.



El separador de campo interno abreviado como IFS se puede utilizar antes de que el comando de lectura se establezca en la cadena nula que evita que se recorten los espacios en blanco iniciales o finales.



tiempo IFS=leer -rlínea;
hacer
echo $ línea;
hecho <fichero de entrada

Abra el terminal usando Ctrl + Alt + t atajo y luego ejecute los siguientes comandos en él.





Ejemplo n. ° 1: lectura de archivos línea por línea

Tomemos un ejemplo en el que supongamos que tenemos un archivo llamado OS.txt que contiene los nombres de todas las distribuciones importantes de Linux. Si desea leer un archivo sin usar el comando 'cat', entonces, para este propósito, puede ejecutar el siguiente comando para realizar la tarea en particular. Usaremos el bucle while que leerá cada línea del archivo OS.txt y almacena el contenido de cada paso en una línea variable $ que puede mostrar más adelante.

Pegue los siguientes nombres de distribuciones de Linux en OS.txt



CentOS
Ubuntu
Debian
LinuxMint $tiempo leerlínea;
hacer
echo $ línea;
hecho <OS.txt


Desde el comando anterior, obtendrá la siguiente respuesta en la ventana de la terminal:

Ejemplo # 2: Lectura de archivos usando el script bash

Cree un archivo bash y luego agregue el código mencionado a continuación en este archivo para leer el contenido del archivo. Puede almacenar el archivo de texto anterior en una nueva variable $ nombre de archivo y la variable $ n se usa para mantener el valor de cada línea. Ahora, usando el ciclo while, leeremos cada línea de un archivo con un número de línea particular.

#! / bin / bash
nombre del archivo='OS.txt'
norte=1
tiempo leerlínea;
hacer
# para leer cada línea
echo 'OS distribution line no.$ n:$ línea'
norte=$((n +1))
hecho < $ nombre de archivo

Guarde el archivo con un nombre OSinfo.sh y escriba el siguiente comando en la terminal para ejecutar el script bash anterior.

$intentoOSinfo.sh

Ahora, ejecute el comando cat para ver el contenido del archivo original.

$gatoOS.txt

Método alternativo para la lectura de archivos

Usando pasar el nombre de archivo de un comando

En un archivo bash, debe agregar el siguiente script de código. En este script, tenemos que tomar un nombre de archivo como argumento. Primero, el valor de un argumento es leído por una variable $ 1 que tiene un nombre de archivo para lectura. Verificará que el nombre del archivo existe en la ubicación especificada y luego, usando el bucle while, leerá un archivo línea por línea similar al ejemplo anterior.

#! / bin / bash
nombre del archivo=$1
tiempo leerlínea;hacer
# leyendo cada línea
echo $ línea
hecho < $ archivo.TXT

Guarde el script anterior con el nombre 'Readline.sh' y ejecute el siguiente comando en la terminal para ejecutar el script mencionado anteriormente:

En la salida anterior, observará que el archivo 'OSinfo.txt' pasa como un argumento y el contenido de 'OSinfo.txt' se mostrará después de eliminar espacios adicionales. Puede mostrar el contenido del archivo original ejecutando 'cat OSinfo.txt'.

Conclusión

En este artículo, hemos discutido cómo leer líneas usando el bucle while en la programación bash. Hemos implementado diferentes métodos usando el script bash o simplemente puede usar un archivo de texto para realizar una tarea de lectura línea por línea de un archivo. Si está interesado en aprender más ejemplos, utilice la sintaxis mencionada anteriormente que también puede ejecutar en su sistema. Espero que hayas disfrutado de este tutorial y sea único para ti. Infórmenos en caso de algún error.