Linux 只列出用户所属的选定组?

Linux 只列出用户所属的选定组?

当我使用命令 groups userid 时,它会列出当前分配给该用户的 100 多个组。我只需要列出包含abc.

当我这样做时,groups userid | grep abc 在输出中列出了所有组(超过 100 个),并abc突出显示了匹配的组。是否可以仅列出包含 的组abc

答案1

尝试这个:

groups <username> | tr ' ' '\n' | grep "abc"

要点是在操作groups <username>时用空格分隔每个组grep线。这就是为什么您可以简单地\n使用换行符交换空格tr,然后使用grep

您可以尝试使用此命令(末尾不带| grep "abc")来查看中间结果。

答案2

首先,让我们仅匹配给定的组名称,避免其他组名称中的任何子字符串匹配:

$ groups
foo foobar baz ban bat
$ groups | grep --regexp=foo --regexp=ban --word-regexp
[outputs "foo foobar baz ban bat" with only "foo" and "ban" highlighted]

仅列出实际匹配项:

$ groups | grep --only-matching --regexp=foo --regexp=ban --word-regexp
foo
ban

相关内容