Sha*_*der 0 unix linux bash shell
我有两个变量,其值可以在两者中.我想从这两个变量中创建一个唯一的列表.
VAR1="SERVER1 SERVER2 SERVER3"
VAR2="SERVER1 SERVER5"
Run Code Online (Sandbox Code Playgroud)
我想得到一个结果:
"SERVER1 SERVER2 SERVER3 SERVER5"
Run Code Online (Sandbox Code Playgroud)
以下管道通过sort程序使用唯一参数组合两个列表-u:
UNIQUE=$(echo "$VAR1 $VAR2" | tr ' ' '\n' | sort -u)
Run Code Online (Sandbox Code Playgroud)
这给出了输出:
> echo $UNIQUE
SERVER1 SERVER2 SERVER3 SERVER5
Run Code Online (Sandbox Code Playgroud)
编辑:
正如William Purcell在下面的评论中指出的那样,这将字符串用新线分开.如果您希望再次通过空格分隔,则可以通过tr '\n' ' '以下方式对输出进行排序:
> UNIQUE=$(echo "$VAR1 $VAR2" | tr ' ' '\n' | sort -u | tr '\n' ' ')
> echo "$UNIQUE"
SERVER1 SERVER2 SERVER3 SERVER5
Run Code Online (Sandbox Code Playgroud)