bash 从列表中删除重复的字符串

Ann*_* K. 7 string bash grep

我想从字符串中删除重复的字符串。例子:

A="Dog Cat Horse Dog Dog Cat"
Run Code Online (Sandbox Code Playgroud)

字符串 A 应如下所示:

A="Dog Cat Horse"
Run Code Online (Sandbox Code Playgroud)

我该如何为此编写 Shell 脚本?

小智 10

你可以用这个,

echo "a a b b c c" | tr ' ' '\n' | sort | uniq | tr '\n' ' ' | sed -e 's/[[:space:]]*$//'
Run Code Online (Sandbox Code Playgroud)


cho*_*oba 7

如果顺序不重要,您可以使用关联数组:

declare -A uniq
for k in $A ; do uniq[$k]=1 ; done
echo ${!uniq[@]}
Run Code Online (Sandbox Code Playgroud)