Cómo leer el archivo línea por línea en el script Bash

How Read File Line Line Bash Script



¿Cómo escribiría un script Bash que pueda procesar un archivo de texto una línea a la vez? Primero necesita una sintaxis y un enfoque para leer el archivo línea por línea. Los métodos para este enfoque se muestran en este tutorial.

Supongamos que tiene un archivo llamado company.txt que contiene los nombres de las empresas. Este archivo contiene el siguiente contenido.







Company.txt
Samsung
Nokia
LG
Sinfonía
iphone

Ejemplo -1: leer el contenido del archivo desde la línea de comandos

Supongamos que desea leer el archivo, company.txt , línea por línea desde la línea de comando sin 'gato' mando. Ejecute el siguiente comando para realizar la tarea. tiempo bucle leerá cada línea del archivo company.txt en cada paso y almacenar el contenido de la línea en $ línea variable que se imprimirá más tarde.



$tiempo leerlínea;hacer echo $ línea;hecho <company.txt



Ejemplo -2: lectura del contenido del archivo mediante un script

Cree un archivo bash y agregue el siguiente código para leer el contenido de un archivo en particular. Aquí, un nombre de archivo existente se almacena en $ nombre de archivo variable y $ n La variable se usa para mantener el valor del número de línea de ese archivo. Como en el ejemplo anterior, tiempo El bucle se utiliza para leer este archivo con el número de línea.





#! / bin / bash
nombre del archivo='empresa.txt'
norte=1
tiempo leerlínea;hacer
# leyendo cada línea
echo 'Línea No.$ n:$ línea'
norte=$((n +1))
hecho < $ nombre de archivo

Ejecute el siguiente comando para ejecutar el script.

$intentoreadfile1.sh

Correr 'gato' comando con company.txt archivo para mostrar el contenido original de company.txt expediente.



$ cat company.txt

Ejemplo -3: pasar el nombre de archivo desde la línea de comando y leer el archivo

Cree un archivo bash y agregue el siguiente script. Este script tomará el nombre de archivo del argumento de la línea de comando. El valor del primer argumento es leído por la variable $ 1 que contendrá el nombre del archivo para su lectura. Si el archivo existe en la ubicación actual, entonces tiempo loop leerá el archivo línea por línea como en el ejemplo anterior e imprimirá el contenido del archivo.

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

Ejecute el script anterior con employee.txt archivo como valor de argumento. La salida mostrará el contenido de employee.txt archivo quitando espacio extra. Puede mostrar el contenido original de employee.txt archivo usando 'gato' mando.

$ bash readfile2.txt employee.txt
$ cat employee.txt

Ejemplo - 4: lectura de archivo omitiendo el escape de barra invertida

Si desea leer cada línea de un archivo omitiendo el escape de barra invertida, entonces debe usar '-R' opción con comando de lectura en tiempo círculo.

#! / bin / bash
tiempo leer -rlínea;hacer
# Leer cada línea
echo $ línea
hecho <company2.txt

Crea un archivo llamado company2.txt con barra invertida y ejecute el siguiente comando para ejecutar el script. La salida mostrará el contenido del archivo sin ninguna barra invertida.

$intentoreadfile3.sh

Necesitará leer el archivo para muchos propósitos de programación. Por ejemplo, puede buscar o hacer coincidir cualquier contenido en particular fácilmente desde cualquier archivo leyendo cada línea por separado. Entonces, es una tarea esencial para cualquier programación. En este tutorial se muestran algunos ejemplos simples de lectura de archivos en script bash. Estos le ayudarán a tener la idea de leer el contenido del archivo línea por línea usando el bucle while en el script bash y aplicarlo en su script de manera más eficiente. Para más información ver el video !