在 bash 中设置字符串中两个变量之间的差异

Nar*_*hut 1 bash shell

我有两个变量,像这样

bigger="a b c d e"
smaller="c a b"
Run Code Online (Sandbox Code Playgroud)

有没有办法在 bash 脚本中获得设置的差异(即 d 和 e)?

顺序并不重要。

Bar*_*mar 5

您可以使用该comm程序来获取两组值之间的差异。它需要排序的输入,因此您必须将值通过管道传输到sort. 由于它们要求每个项目位于单独的行上,因此您应该首先将空格转换为换行符。您可以使用进程替换和此处字符串将字符串提供给程序。

diff=$(comm -23 <(tr ' ' '\n' <<<"$bigger" | sort) <(tr ' ' '\n' <<<"$smaller" | sort))
Run Code Online (Sandbox Code Playgroud)