我有两个变量,它们的值都可以是。我想从这两个变量创建一个唯一的列表。

VAR1="SERVER1 SERVER2 SERVER3"
VAR2="SERVER1 SERVER5"

我想得到的结果是:
"SERVER1 SERVER2 SERVER3 SERVER5"

最佳答案

以下通过带有唯一参数的sort程序将两个列表的组合管道化:

UNIQUE=$(echo "$VAR1 $VAR2" | tr ' ' '\n' | sort -u)

这将给出输出:
> echo $UNIQUE
SERVER1 SERVER2 SERVER3 SERVER5

编辑:
正如William Purcell在下面的注释中指出的,这将用新行分隔字符串。如果希望再次用空格分隔,可以通过管道将输出从sort back传递到-u
> UNIQUE=$(echo "$VAR1 $VAR2" | tr ' ' '\n' | sort -u | tr '\n' ' ')
> echo "$UNIQUE"
SERVER1 SERVER2 SERVER3 SERVER5

关于linux - 从Linux bash Shell脚本中的两个变量创建唯一列表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12533012/

10-12 03:27