Eu tenho uma string como
"aaa,aaa,aaa,bbb,bbb,ccc,bbb,ccc"
Eu quero remover a palavra duplicada da string e a saída será como
"aaa,bbb,ccc"
Eu tentei este código fonte
$ echo "zebra ant spider spider ant zebra ant" | xargs -n1 | sort -u | xargs
Está funcionando bem com o mesmo valor, mas quando dou meu valor de variável, também está mostrando todas as palavras duplicadas.
Como posso remover um valor duplicado.
ATUALIZAR
Minha pergunta é adicionar todo o valor correspondente em uma única string, se o usuário for o mesmo. Tenho dados como este ->
user name | colour
AAA | red
AAA | black
BBB | red
BBB | blue
AAA | blue
AAA | red
CCC | red
CCC | red
AAA | green
AAA | red
AAA | black
BBB | red
BBB | blue
AAA | blue
AAA | red
CCC | red
CCC | red
AAA | green
Ao codificar, busco todos os usuários distintos e concatenarei a sequência de cores com êxito. Para isso, estou usando o código -
while read the records
if [ "$c" == "" ]; then #$c I defined global
c="$colour1"
else
c="$c,$colour1"
fi
Quando imprimo essa variável $ c, recebo a saída (para o usuário AAA)
"red,black,blue,red,green,red,black,blue,red,green,"
Quero remover cores duplicadas. A saída desejada deve ser como
"red,black,blue,green"
Para esta saída desejada, usei o código acima
echo "zebra ant spider spider ant zebra ant" | xargs -n1 | sort -u | xargs
mas está exibindo a saída com valores duplicados.
"vermelho, preto, azul, vermelho, verde, vermelho, preto, azul, vermelho, verde", obrigado
echo 'aaa aaa aaa bbb bbb ccc bbb ccc' | xargs -n1 | sort -u | xargs
dá aaa bbb ccc
.. então você precisa mostrar o código exato que você cansado e saída que você tem .. com a corda na variável:s='aaa aaa aaa bbb bbb ccc bbb ccc'; echo "$s" | xargs -n1 | sort -u | xargs