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
IFSy-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
