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)
6 comentarios:
Te tiro otra forma (creo que ni mejor ni peor, solo distinta):
ls -1 |while read i; do echo $i; done
for i in *; do echo $i; done
I WIN U FAIL
EMAG EHT
@El Barto: alguna vez la habia usado, es mas facil de recordar que la mia
@nassto: no sabia esa (osea, si sabia que era valida, no sabia que funcionaba de otra forma)
esta gente que no lee la documentación... :-P
for i in "$(ls)"; do echo "$i"; done
et voilá!
ES UN LASER! SI CRUZO ME QUEMA!
OMG LAZURS
Publicar un comentario