O nome do arquivo globbing acontece na for
-line, com a expansão de $(cat $myfile)
, não na echo
.
Ao fazer o loop sobre o conteúdo de um arquivo, use read
:
while IFS= read -r words; do
printf '%s\n' "$words"
done <"$myfile"
Veja também:
- Noções básicas sobre "IFS = read -r line"
- Por que usar um loop de shell para processar texto considerado uma má prática?
- Implicações de segurança de esquecendo-se de citar uma variável em shells bash / POSIX
Se você quiser ter cada palavra separada por espaço em branco em sua própria linha de saída:
awk '{ for (i = 1; i <= NF; ++i) print $i }' "$myfile"