Leer líneas de archivo en Bash

Fumbani Banda 30 enero 2023
  1. Leer archivo línea por línea en Bash con el comando read
  2. Leer archivo línea por línea en Bash con la opción IFS y -r
Leer líneas de archivo en Bash

Este tutorial lee un archivo línea por línea en un script bash con el comando read.

Aquí está el contenido del archivo de texto que usaremos.

 john\n ,
james\n ,
joe,
jack,
jill

Leer archivo línea por línea en Bash con el comando read

El archivo names.txt se redirige al bucle while. El comando read procesa cada línea del archivo y la asigna a la variable p, y el comando echo la muestra. Una vez que se procesan todas las líneas, el bucle while se detiene. El comando read ignora los espacios en blanco iniciales, lo que puede ser engañoso en algunos casos.

printf "Names\n"
while read p;
do
    echo "$p"
done <names.txt

Producción :

Names
johnn ,
jamesn ,
joe,
jack,
jill

Leer archivo línea por línea en Bash con la opción IFS y -r

De forma predeterminada, el comando read elimina todos los espacios en blanco iniciales e interpreta la barra invertida como un carácter de escape. Agregamos la opción -r para deshabilitar el escape de la barra invertida y para deshabilitar el recorte de espacios en blanco, de modo que se borre el separador de campo interno (IFS).

printf "Names\n"
while IFS= read -r line; do
    printf '%s\n' "$line"
done < names.txt

Producción :

Names
 john\n ,
james\n ,
joe,
jack,
jill
Fumbani Banda avatar Fumbani Banda avatar

Fumbani is a tech enthusiast. He enjoys writing on Linux and Python as well as contributing to open-source projects.

LinkedIn GitHub

Artículo relacionado - Bash File