Usando awk
como você sugeriu:
$ awk '{ gsub(":", "\n", $0); print }' <file
Lead
Arrow1
Arrow2
Arrow3
Follow
Arrow4
Arrow5
Arrow6
Arrow7
Arrow8
Arrow9
Isso simplesmente substitui cada :
nos dados de entrada por uma nova linha.
Outra solução awk
que usa a variável OFS
(Output Field Separator):
awk -v OFS='\n' -F ':' '{ $1=$1; print }' <file
A atribuição $1=$1
parece falsa, mas força awk
a reformatar o registro de entrada atual de acordo com OFS
(e ORS
, mas não alteramos isso do padrão, que é uma nova linha), o que, nesse caso, significa inserir novas linhas entre todos os campos :
-delimited.
Com awk
, podemos também apenas iterar os campos :
-delimited e imprimi-los individualmente:
awk -F ':' '{ for (i = 1; i <= NF; ++i) print $i }' <file