Tôi có một chuỗi như
"aaa,aaa,aaa,bbb,bbb,ccc,bbb,ccc"
Tôi muốn xóa từ trùng lặp khỏi chuỗi thì đầu ra sẽ như thế nào
"aaa,bbb,ccc"
Tôi đã thử mã nguồn này
$ echo "zebra ant spider spider ant zebra ant" | xargs -n1 | sort -u | xargs
Nó hoạt động tốt với cùng một giá trị, nhưng khi tôi đưa ra giá trị biến của mình thì nó cũng hiển thị tất cả các từ trùng lặp.
Làm thế nào tôi có thể loại bỏ giá trị trùng lặp.
CẬP NHẬT
Câu hỏi của tôi là thêm tất cả giá trị tương ứng vào một chuỗi nếu người dùng giống nhau. Tôi có dữ liệu như thế này ->
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
Trong mã hóa, tôi tìm nạp tất cả người dùng riêng biệt sau đó tôi nối chuỗi màu thành công. Tôi đang sử dụng mã -
while read the records
if [ "$c" == "" ]; then #$c I defined global
c="$colour1"
else
c="$c,$colour1"
fi
Khi tôi in biến $ c này, tôi nhận được đầu ra (Dành cho Người dùng AAA)
"red,black,blue,red,green,red,black,blue,red,green,"
Tôi muốn loại bỏ màu trùng lặp. Sau đó, đầu ra mong muốn sẽ giống như
"red,black,blue,green"
Đối với đầu ra mong muốn này, tôi đã sử dụng mã ở trên
echo "zebra ant spider spider ant zebra ant" | xargs -n1 | sort -u | xargs
nhưng nó đang hiển thị đầu ra với các giá trị trùng lặp. Giống như
"đỏ, đen, xanh dương, đỏ, xanh lá cây, đỏ, đen, xanh dương, đỏ, xanh lá cây," Cảm ơn
echo 'aaa aaa aaa bbb bbb ccc bbb ccc' | xargs -n1 | sort -u | xargs
cho aaa bbb ccc
.. vì vậy bạn cần hiển thị chính xác mã bạn mệt mỏi và đầu ra bạn nhận được .. với chuỗi biến:s='aaa aaa aaa bbb bbb ccc bbb ccc'; echo "$s" | xargs -n1 | sort -u | xargs