Ich habe eine Schnur wie
"aaa,aaa,aaa,bbb,bbb,ccc,bbb,ccc"
Ich möchte doppelte Wörter aus der Zeichenfolge entfernen, dann wird die Ausgabe wie folgt sein
"aaa,bbb,ccc"
Ich habe diesen Code Source ausprobiert
$ echo "zebra ant spider spider ant zebra ant" | xargs -n1 | sort -u | xargs
Es funktioniert gut mit demselben Wert, aber wenn ich meinen variablen Wert gebe, werden auch alle doppelten Wörter angezeigt.
Wie kann ich doppelte Werte entfernen?
AKTUALISIEREN
Meine Frage ist das Hinzufügen aller entsprechenden Werte zu einer einzelnen Zeichenfolge, wenn der Benutzer derselbe ist. Ich habe Daten wie diese ->
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
Beim Codieren rufe ich alle unterschiedlichen Benutzer ab und verkette dann die Farbzeichenfolge erfolgreich. Damit ich Code verwende -
while read the records
if [ "$c" == "" ]; then #$c I defined global
c="$colour1"
else
c="$c,$colour1"
fi
Wenn ich diese $ c-Variable drucke, erhalte ich die Ausgabe (für Benutzer AAA)
"red,black,blue,red,green,red,black,blue,red,green,"
Ich möchte doppelte Farben entfernen. Dann sollte die gewünschte Ausgabe wie folgt sein
"red,black,blue,green"
Für diese gewünschte Ausgabe habe ich den obigen Code verwendet
echo "zebra ant spider spider ant zebra ant" | xargs -n1 | sort -u | xargs
Es wird jedoch die Ausgabe mit doppelten Werten angezeigt
"rot, schwarz, blau, rot, grün, rot, schwarz, blau, rot, grün", danke
echo 'aaa aaa aaa bbb bbb ccc bbb ccc' | xargs -n1 | sort -u | xargs
gibt aaa bbb ccc
.. also müssen Sie den genauen Code s='aaa aaa aaa bbb bbb ccc bbb ccc'; echo "$s" | xargs -n1 | sort -u | xargs