Como fazer o loop de uma linha de valores usando ',' e imprimi-la como uma lista

2

Estou tentando fazer o loop de um arquivo usando um delimitador com um ',' e imprimir esses valores em uma "lista", mas não tenho certeza de como obter todos os valores do delimitador.

Eu tenho um arquivo com e-mails como este (todos em uma linha):

[email protected],[email protected],[email protected]

e meu script é assim:

EmailsFile="/dev/fs/C/Users/myuser/Desktop/EMAILSTOREAD.txt"

for email in $(cat ${EmailsFile} | cut -d "," -f 1-100)
do
   echo "${email}\n"
done

Eu fiz 1-100 porque não tenho certeza de quantos valores podem ter o arquivo.

a saída que estou recebendo é:

[email protected],[email protected],[email protected]

Resultado esperado:

[email protected]
[email protected]
[email protected]

Alguma ideia?

    
por Javier Salas 20.10.2016 / 17:54

2 respostas

2

Uma solução é:

awk '{ gsub(",","\n"); print $0 }' $EmailsFile
    
por 20.10.2016 / 18:18
2

Uma solução usando tr que prefiro porque está no pacote coreutils .

tr ',' '\n' < ${EmailsFile}
    
por 20.10.2016 / 18:55