Tengo un archivo llamado /tmp/urlFile
donde cada línea representa una url. Estoy tratando de leer del archivo de la siguiente manera:
cat "/tmp/urlFile" | while read url
do
echo $url
done
Si la última línea no termina con un carácter de nueva línea, esa línea no se leerá. Me preguntaba por qué?
¿Es posible leer todas las líneas, sin importar si terminan con una nueva línea o no?
Respuesta aceptada:
Harías:
while IFS= read -r url || [ -n "$url" ]; do
printf '%sn' "$url"
done < url.list
(Efectivamente, ese bucle vuelve a agregar la nueva línea que falta en la última (no) línea).
- ¿Por qué se considera una mala práctica usar un bucle de shell para procesar texto?
- ¿Entiendes "IFS=leer -r línea"?
- ¿Por qué printf es mejor que echo?