se o seu arquivo for um arquivo csv real (simple-csv) como abaixo, você pode usar o seguinte comando awk
:
Entrada:
[email protected]
[email protected]
[email protected],[email protected],[email protected]
O comando:
awk -F, '{ COMMA="";i=0; while (++i<=NF) {
$1=$i; printf (!seen[$1]++)?COMMA$i:""; COMMA=","}; print ""
}' infile.csv
Saída:
[email protected]
[email protected]
[email protected],[email protected]
Se não, e a entrada é como dar sua pergunta, você pode usar abaixo:
awk 'NR==1; NR>1{id=$1"\t"; COMMA=$1="";split($0, ar, /,| /);
for(i in ar){if(ar[i]!=""){printf(!seen[ar[i]]++)?id""COMMA""ar[i]:""; COMMA=",";id=""}
} print ""}' infile
Saída:
id emails
1 [email protected]
2 [email protected]
3 [email protected],[email protected]