我正在使用以下行打印多次登录的用户列表(编辑)我刚刚意识到这实际上并不起作用):
who | grep -Eo '^[^ ]+' | sort | uniq
问题是,我只想打印名称也存在于文本文件中的用户。我对脚本(和一般的Unix)相对较新,所以也许我只是一个巨大的假人,但根据我的推理,最简单的方法是使用uniq
的输出作为输入我在另一个答案中找到了这一行:
grep -Fxq "$FILENAME" blacklist.txt
当然,我需要将"$FILENAME"
替换为uniq
的输出,但我不能在我的生活中解决如何来执行此操作。
答案 0 :(得分:1)
这适合我。
who | grep -Eo '^[^ ]+' | sort | uniq | grep -w "$(cat blacklist.txt | xargs | sed 's| |\\\||g')"
我的blacklist.txt每行有一个用户ID
此命令基本上将黑名单与
分开name1
name2
name3
到name1\|name2\|name3
,这样你就可以只为这些词而烦恼。