Você realmente não deve analisar a saída de ls
. Se esta é uma tarefa de casa e você é obrigado a, seu professor não sabe o que está falando. Por que você não faz algo assim:
O bom ...
find ./ -printf "%f\n"
ou
for n in *; do printf '%s\n' "$n"; done
... o ruim ...
Se você realmente quiser usar ls
, você pode torná-lo um pouco mais robusto, fazendo algo parecido com isto:
ls -lA | awk -F':[0-9]* ' '/:/{print $2}'
... e o feio
Se você insistir em fazê-lo da maneira errada e perigosa e apenas usar um while
loop, faça isso:
ls -Al | while IFS= read -r string; do echo "$string" |
awk -F':[0-9]* ' '/:/{print $2}'; done
Falando sério, apenas não.