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
$var2entre aspas para continuar a exibi-lo como uma linha por resultado - caso contrário sem aspas,
echopor padrão interpreta cada "palavra" em$var2como 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