Ho una stringa come
"aaa,aaa,aaa,bbb,bbb,ccc,bbb,ccc"
Voglio rimuovere la parola duplicata dalla stringa, quindi l'output sarà simile
"aaa,bbb,ccc"
Ho provato questo codice sorgente
$ echo "zebra ant spider spider ant zebra ant" | xargs -n1 | sort -u | xargs
Funziona bene con lo stesso valore, ma quando do il mio valore variabile, mostra anche tutte le parole duplicate.
Come posso rimuovere il valore duplicato.
AGGIORNARE
La mia domanda è aggiungere tutto il valore corrispondente in una singola stringa se l'utente è lo stesso. Ho dati come questo ->
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
Nella codifica prendo tutti gli utenti distinti quindi concateno con successo la stringa di colore. Per questo sto usando il codice -
while read the records
if [ "$c" == "" ]; then #$c I defined global
c="$colour1"
else
c="$c,$colour1"
fi
Quando stampo questa variabile $ c ottengo l'output (per l'utente AAA)
"red,black,blue,red,green,red,black,blue,red,green,"
Voglio rimuovere il colore duplicato. Quindi l'output desiderato dovrebbe essere simile
"red,black,blue,green"
Per questo output desiderato ho usato il codice sopra
echo "zebra ant spider spider ant zebra ant" | xargs -n1 | sort -u | xargs
ma visualizza l'output con valori duplicati. Come
"rosso, nero, blu, rosso, verde, rosso, nero, blu, rosso, verde" Grazie
echo 'aaa aaa aaa bbb bbb ccc bbb ccc' | xargs -n1 | sort -u | xargs
dà aaa bbb ccc
.. quindi devi mostrare il codice esatto che sei stanco e l'output che hai .. con la stringa in variabile:s='aaa aaa aaa bbb bbb ccc bbb ccc'; echo "$s" | xargs -n1 | sort -u | xargs