У меня есть строка как
"aaa,aaa,aaa,bbb,bbb,ccc,bbb,ccc"
Я хочу удалить повторяющееся слово из строки, тогда вывод будет
"aaa,bbb,ccc"
Я попробовал этот код Source
$ echo "zebra ant spider spider ant zebra ant" | xargs -n1 | sort -u | xargs
Он работает нормально с тем же значением, но когда я даю значение моей переменной, он также показывает все повторяющиеся слова.
Как я могу удалить дублирующее значение.
ОБНОВИТЬ
Мой вопрос заключается в добавлении всех соответствующих значений в одну строку, если пользователь такой же. У меня есть такие данные ->
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
В коде я выбираю всех отдельных пользователей, затем успешно соединяю строку цветов. Для этого я использую код -
while read the records
if [ "$c" == "" ]; then #$c I defined global
c="$colour1"
else
c="$c,$colour1"
fi
Когда я печатаю эту переменную $ c, я получаю вывод (для пользователя AAA)
"red,black,blue,red,green,red,black,blue,red,green,"
Я хочу удалить дублирующий цвет. Затем желаемый результат должен быть
"red,black,blue,green"
Для этого желаемого результата я использовал приведенный выше код
echo "zebra ant spider spider ant zebra ant" | xargs -n1 | sort -u | xargs
но он отображает вывод с повторяющимися значениями. Как
"красный, черный, синий, красный, зеленый, красный, черный, синий, красный, зеленый" Спасибо
echo 'aaa aaa aaa bbb bbb ccc bbb ccc' | xargs -n1 | sort -u | xargs
дает aaa bbb ccc
.. так что вам нужно показать точный код, который вы устали и вывод, который вы получили .. со строкой в переменной:s='aaa aaa aaa bbb bbb ccc bbb ccc'; echo "$s" | xargs -n1 | sort -u | xargs