Benim gibi bir ipim var
"aaa,aaa,aaa,bbb,bbb,ccc,bbb,ccc"
Dize yinelenen kelime kaldırmak istiyorum sonra çıktı gibi olacak
"aaa,bbb,ccc"
Bu kodu denedim Kaynak
$ echo "zebra ant spider spider ant zebra ant" | xargs -n1 | sort -u | xargs
Aynı değerle iyi çalışıyor, ancak değişken değerimi verdiğimde tüm yinelenen kelimeleri de gösteriyor.
Yinelenen değeri nasıl kaldırabilirim.
GÜNCELLEME
Benim sorum kullanıcı aynı ise tek bir dize karşılık gelen tüm değer eklemektir. Böyle veri var ->
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
Kodlama ben tüm farklı kullanıcı getir sonra başarıyla renk dizesini bitiştirmek. Bunun için kod kullanıyorum -
while read the records
if [ "$c" == "" ]; then #$c I defined global
c="$colour1"
else
c="$c,$colour1"
fi
Bu $ c değişkenini yazdırdığımda çıktı alıyorum (Kullanıcı AAA için)
"red,black,blue,red,green,red,black,blue,red,green,"
Yinelenen rengi kaldırmak istiyorum.
"red,black,blue,green"
Bu istenen çıkış için yukarıdaki kod kullanılır
echo "zebra ant spider spider ant zebra ant" | xargs -n1 | sort -u | xargs
ancak çıktı yinelenen değerlerle görüntüleniyor.
"kırmızı, siyah, mavi, kırmızı, yeşil, kırmızı, siyah, mavi, kırmızı, yeşil," Teşekkürler
echo 'aaa aaa aaa bbb bbb ccc bbb ccc' | xargs -n1 | sort -u | xargs
verir aaa bbb ccc
.. bu yüzden yorgun ve var tam kodunu göstermek gerekir .. değişkente dize ile:s='aaa aaa aaa bbb bbb ccc bbb ccc'; echo "$s" | xargs -n1 | sort -u | xargs