Mostrando las entradas con la etiqueta shell. Mostrar todas las entradas
Mostrando las entradas con la etiqueta shell. Mostrar todas las entradas

lunes, febrero 14, 2011

iterar por directorios con espacios en un shell script

la vida nos sonríe, nos sentimos cual neo escribiendo comandos en el shell a diestra y siniestra, estamos a punto de para las balas con las manos, corremos:

for i in $(ls); do echo $i; done

y nuestra ilusión hacker se nos cae a pedazos al ver que cada palabra de un directorio o archivo con espacios sale en una linea nueva.

no desesperaos (?) he aquí la solución.

reproduzcamos el error para después arreglarlo:

$ mkdir -p "t/folder 1" "t/folder 2" "t/folder 3 with more spaces"
$ cd t
$ for i in $(ls); do echo $i; done
folder
1
folder
2
folder
3
with
more
spaces



vamos de nuevo ahora con la solución:

$ IFS="$(echo -e "\n\r")"
$ for i in $(ls); do echo $i; done
folder 1
folder 2
folder 3 with more spaces

y todos felices (incluso carlin calvo que puede seguir hackeando literalmente a dos manos en sus computadoras auspiciadas por fravega)

Seguidores

Archivo del Blog