Si en la línea del CLI o un script de este tipo:
for LINEA in $(find _directorio_ _que_buscar_ ) do echo $LINEA done
nos aparece uno o más espacios no nos saldrá la salida como esperamos
ya que el for interpreta el espacio como un separador con lo cual en vez de tener un listado como este (es un mero ejemplo):
linea1 linea2 linea 3 linea4
obtendremos un listado como este:
linea1 linea2 linea 3 linea4
que está claro no es lo que buscamos :-(.
Para solucionar esto basta con añadir una simple línea delante del For para que “ignore” los espacios y obtengamos el listado como queremos:
export IFS=$'\n' for LINEA in $(find _directorio_ _que_buscar_ ) do echo $LINEA done







































1 comentario ↓
Muy bueno tu weblog, creo que tenemos inquietudes y formas de pensar parecidas. Acabo de llegar a él a través de una entrada en el blog de Eduardo Collado.
Añadir que esta solución acerca del IFS a mí me resultó menos compatible (creo que fallaba con ksh) que otra que utilizo más a menudo:
export IFS=”
”
que funciona (al menos) en bash, sh y ksh.
Saludos y enhorabuena.
Pere Moltó.
Deja un Commentario