Leer líneas de archivo en Bash
-
Leer archivo línea por línea en Bash con el comando
read
-
Leer archivo línea por línea en Bash con la opción
IFS
y-r
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