Você poderia canalizá-lo através de tr, sort, uniq, por exemplo, no prompt de comando, você pode testar isso:
$ var1='50003 50003 50003 50001 50003'
Em seguida,
$ echo $var1 | tr ' ' '\n' | sort | uniq
50001
50003
Como você pode ver, ele é exclusivo e o classifica caso você queira fazer alguma coisa com ele posteriormente, o que requer entrada classificada.
Atualizar
Para sua pergunta adicional nos comentários, se você deseja salvar os resultados em uma variável, você pode, no script:
var2="$( echo $var1 | tr ' ' '\n' | sort | uniq )"
-
$(
...)
é uma substituição de comando bash, substituindo o conteúdo de$(...)
pelos comandos 'output
Então, mais tarde, no seu script, se você deseja gerar $var2
para o terminal, apenas:
echo "$var2"
- coloque
$var2
entre aspas para continuar a exibi-lo como uma linha por resultado - caso contrário sem aspas,
echo
por padrão interpreta cada "palavra" em$var2
como um argumento separado, irá gerar um por um separado por espaço, então você acaba com uma sentença longa.
Lembre-se também de que você pode salvar a saída em um arquivo como ~/unique_results.txt
:
echo $var1 | tr ' ' '\n' | sort | uniq > ~/unique_results.txt
-
>
é o redirecionamento de arquivos, redireciona o padrão para o arquivo especificado