比较bash中的2个用户列表

时间:2017-02-10 12:33:42

标签: bash unix

我有2个包含用户列表的变量

echo $old_users

1
2   
3
4
5
6

echo $new_users

1
2   
3
4

我想知道old_users列表中哪些用户被删除了new_users列表(这里是用户5和6)。这是我到目前为止所写的内容,但我仍然遗漏了一些内容:

echo $old_users | while read line
do
  if echo "$new_users"| grep "$line"
then
   echo "$line user was removed"
else
   echo "$line user is still there"
fi
done

任何帮助表示赞赏!感谢

2 个答案:

答案 0 :(得分:0)

for line in $old_users
do
if echo "$new_users"| grep "$line"  #[ You can use grep -w for exact match here ]
then
   echo "$line user was removed"
else
   echo "$line user is still there"
fi
done

希望它现在可以运作。

答案 1 :(得分:0)

这有点类似于https://superuser.com/a/135180。所以在这里使用它可能是有益的。这将采用old_users的设置差异 - new_users。

diff --changed-group-format='%<' --unchanged-group-format='' <(echo $old_users) <(echo $new_users)