Tengo una cuerda como
"aaa,aaa,aaa,bbb,bbb,ccc,bbb,ccc"
Quiero eliminar la palabra duplicada de la cadena y luego la salida será como
"aaa,bbb,ccc"
Intenté este código Fuente
$ echo "zebra ant spider spider ant zebra ant" | xargs -n1 | sort -u | xargs
Está funcionando bien con el mismo valor, pero cuando doy mi valor variable, también muestra todas las palabras duplicadas.
¿Cómo puedo eliminar el valor duplicado?
ACTUALIZAR
Mi pregunta es agregar todo el valor correspondiente en una sola cadena si el usuario es el mismo. Tengo datos 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
En la codificación, busco a todos los usuarios distintos y luego concateno la cadena de color con éxito. Para eso estoy usando código:
while read the records
if [ "$c" == "" ]; then #$c I defined global
c="$colour1"
else
c="$c,$colour1"
fi
Cuando imprimo esta variable $ c obtengo el resultado (para el usuario AAA)
"red,black,blue,red,green,red,black,blue,red,green,"
Quiero eliminar el color duplicado. Entonces la salida deseada debería ser como
"red,black,blue,green"
Para esta salida deseada, utilicé el código anterior
echo "zebra ant spider spider ant zebra ant" | xargs -n1 | sort -u | xargs
pero muestra la salida con valores duplicados.
"rojo, negro, azul, rojo, verde, rojo, negro, azul, rojo, verde" Gracias
echo 'aaa aaa aaa bbb bbb ccc bbb ccc' | xargs -n1 | sort -u | xargs
da aaa bbb ccc
... por lo que necesita mostrar el código exacto que cansó y la salida que obtuvo ... con la cadena en variable:s='aaa aaa aaa bbb bbb ccc bbb ccc'; echo "$s" | xargs -n1 | sort -u | xargs