У мене є така струна
"aaa,aaa,aaa,bbb,bbb,ccc,bbb,ccc"
Я хочу видалити дублікат слова з рядка, тоді вихід буде подібний
"aaa,bbb,ccc"
Я спробував цей код Джерело
$ 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