Investigá sobre la variable IFS (Internal Field Separator).
Creo que tendrás más suerte con "while read":
Código:
ls -l ..... | while read linea; do
echo "$linea"
done
A propósito: si vas a usar AWK, grep es innecesario:
Código:
ls -l $dir | awk '!/total/ { print "Permisos",$1,"nombre",$8}'
Un comentario más: quizás puedas ahorrarte el bucle si en vez de usar
ls usás
find, y jugás con la opción -printf
Saludos.