经过很长一段时间后,我正在尝试使用shell脚本。在这里,如果我有两个变量说var& foo如下:
$ echo $var
root daemon bin sys sync games man lp mail news uucp proxy www-data backup list irc gnats nobody systemd-timesync systemd-network systemd-resolve systemd-bus-proxy syslog _apt lxd messagebus uuidd dnsmasq sshd zarvis
$ echo $foo
games backup nobody zarvis
他们有一些共同的价值观,我想比较它们,只找出唯一的价值观。到目前为止,我已经从网上尝试了很多,但无法找到解决方案。请帮忙。
答案 0 :(得分:1)
如果您想在[{1}}中找到$var
中不的所有项目,则会执行此操作:
$foo
如果您想查找tmp()
{
var="root daemon bin sys sync games man lp mail news uucp proxy www-data backup list irc gnats nobody systemd-timesync systemd-network systemd-resolve systemd-bus-proxy syslog _apt lxd messagebus uuidd dnsmasq sshd zarvis"
foo="games backup nobody zarvis"
varray={$var}
for v in ${varray[@]}
do
if ! [[ "$foo" =~ "$v" ]]; then
echo "No match -- $v"
fi
done
}
中不在$foo
内的项目(另一种方式'回合),只需在上面的代码中切换两项即可。如果您想要两个列表,请一个接一个地运行。
注意:可能有一种方法可以同时进行,但有时,在现实世界中,快速简单的解决方案比聪明且复杂的解决方案更可取。
希望这有帮助!