AWK Linux - Separando caracteres

Bom dia gente,

Alguém pode me ajudar por favor?

Preciso pegar uma palavra aleatória dentro um arquivo .txt no linux (feito) e imprimi-la com cada caractere em uma linha.
Por exemplo: Estou usando o Manjaro:
cat /etc/passwd | awk -F : {‘´print $1’} | tail -1

Esse comando está retornando o último nome do usuário da lista, é o manjaro.
Preciso agora formatar a palavra para que seja exibida da seguinte forma:
m
a
n
j
a
r
o

Tentei usar um array mas não consegui… Alguém pode me ajudar?

Desde já agradeço.


$ echo "manjaro" | awk '{size=split($1, array, ""); for(i=0;i<=size;i++) { print "<" i ">" array[i]}}'
<0>
<1>m
<2>a
<3>n
<4>j
<5>a
<6>r
<7>o

sim vc pode usar array atraves da função split

perceba que, por alguma razão, o primeiro elemento ( 0 ) esta vazio. basta vc fazer o seu for começando em 1 que vc pode imprimir certinho o que vc quer.

length(array) pode retornar o tamanho do array mas isso não é standard. por sorte split retorna o numero de elementos :slight_smile:

1 curtida

Perfeito!!! Deu certinho aqui, era isso mesmo que eu precisava!
Muito obrigada peczenyj :wink: