Canadian Luke Asked: 2018-03-21 08:39:21 +0800 CST2018-03-21 08:39:21 +0800 CST 2018-03-21 08:39:21 +0800 CST Grep 用于具有多个用户的组 772 我们正准备从旧式域迁移到基于 Active Directory 的 Samba。目前我们所有的组都是扁平的——用户属于组,但组不能属于其他组。由于我想改变它,我需要列出所有用户组。 问题是有成千上万的用户和成千上万的组。我需要的是列出具有 2 个或更多成员的组,然后只在命令行上显示组名。这应该消除用户组,或只有一个用户的组。 我怎样才能在 Debian 中做到这一点? debian grep 3 个回答 Voted Jeff Schaller 2018-03-21T09:10:22+08:002018-03-21T09:10:22+08:00 一般来说, getent group | awk -F ':' '$4 ~ "," {print $1}' 如果组列表的第 4 个冒号分隔的字段(用户列表)包含逗号,则打印第一个冒号分隔的字段(组名)。 Best Answer jesse_b 2018-03-21T08:44:52+08:002018-03-21T08:44:52+08:00 可能不是最好的方法,但这可能有效: awk -F: '$NF ~ "," { print $1 }' /etc/group jmullee 2018-03-21T14:07:35+08:002018-03-21T14:07:35+08:00 由于组成员以逗号分隔,因此只有多成员组才有逗号。从这些组文件行中,仅显示第一个冒号之前的行内容。 grep , /etc/group | cut -d: -f 1
一般来说,
如果组列表的第 4 个冒号分隔的字段(用户列表)包含逗号,则打印第一个冒号分隔的字段(组名)。
可能不是最好的方法,但这可能有效:
由于组成员以逗号分隔,因此只有多成员组才有逗号。从这些组文件行中,仅显示第一个冒号之前的行内容。