Ordenar o conteúdo de uma variável [RESOLVIDO]

1. Ordenar o conteúdo de uma variável [RESOLVIDO]

Rodrigo Albuquerque Serafim
raserafim

(usa Slackware)

Enviado em 04/11/2017 - 12:23h

Como faço para ordenar o conteúdo de uma variável?

Com o comando "sort" consigo ordenar facilmente as linhas de um arquivo.

mas o que quero é ordenar o conteúdo de uma variável em texto.

exemplo ilustrativo:
vartexto="casa abelha bola"

echo "normal: $vartexto"

vartexto=$(echo $vartexto | sort)

echo "ordem: $vartexto"


o problema desse código é que a variável "vartexto" não é ordenado pelo "sort"..



  


2. Re: Ordenar o conteúdo de uma variável [RESOLVIDO]

Ryuk Shinigami
Ryuk

(usa Nenhuma)

Enviado em 04/11/2017 - 14:31h

Use arrays:
vartexto=(casa abelha bola)
echo ${vartexto[*]}

Saída: casa abelha bola

sorted=($(printf '%s\n' "${vartexto[@]}"|sort))
echo ${sorted[*]}

Saída: abelha bola casa




3. Re: Ordenar o conteúdo de uma variável [RESOLVIDO]

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 04/11/2017 - 22:09h

raserafim escreveu:

Como faço para ordenar o conteúdo de uma variável?

Com o comando "sort" consigo ordenar facilmente as linhas de um arquivo.

mas o que quero é ordenar o conteúdo de uma variável em texto.

exemplo ilustrativo:
vartexto="casa abelha bola"

echo "normal: $vartexto"

vartexto=$(echo $vartexto | sort)

echo "ordem: $vartexto"


o problema desse código é que a variável "vartexto" não é ordenado pelo "sort"..


Boa noite Raserafinm
Veja se ajuda:
tr " " "\\n" <<< "$vartexto"|sort|paste -sd ' '
abelha bola casa


att.:
Marcelo Oliver


4. Re: Ordenar o conteúdo de uma variável [RESOLVIDO]

Rodrigo Albuquerque Serafim
raserafim

(usa Slackware)

Enviado em 06/11/2017 - 11:03h

Ryuk escreveu:

Use arrays:
vartexto=(casa abelha bola)
echo ${vartexto[*]}

Saída: casa abelha bola

sorted=($(printf '%s\n' "${vartexto[@]}"|sort))
echo ${sorted[*]}

Saída: abelha bola casa



Deu certo!
vartexto=(casa abelha bola biloca)
echo ${vartexto[@]}

vartexto=($(printf '%s\n' "${vartexto[@]}" | sort))

echo ${vartexto[@]}





5. Re: Ordenar o conteúdo de uma variável [RESOLVIDO]

Rodrigo Albuquerque Serafim
raserafim

(usa Slackware)

Enviado em 06/11/2017 - 11:04h

msoliver escreveu:

[quote]raserafim escreveu:
vartexto="casa abelha bola"

echo "normal: $vartexto"

vartexto=$(echo $vartexto | sort)

echo "ordem: $vartexto"


Deu certo!
vartexto="casa abelha bola"

echo "normal: $vartexto"

vartexto=$(tr " " "\\n" <<< "$vartexto"|sort|paste -sd ' ')

echo "ordem: $vartexto"




6. Re: Ordenar o conteúdo de uma variável [RESOLVIDO]

Rodrigo Albuquerque Serafim
raserafim

(usa Slackware)

Enviado em 06/11/2017 - 11:07h

obrigado Ryuk e obrigado msoliver!

ambos os códigos deram certo!

o do primeiro colega tem a vantagem de ser mais inteligível (ao menos para o meu nível).

o do segundo colega tem a vantagem de ser mais enxuto.

obrigado!







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts