使用getent group获取sh中组中的用户数

时间:2016-09-21 15:22:53

标签: sh

我想打印名为managers的组中的用户数。

getent group managers | awk -F: '{print $4}' | awk -F, '{print}'

该行正在打印他们的用户登录信息,但我想要计算。

1 个答案:

答案 0 :(得分:1)

尝试:

getent group managers | awk -F: '{n=split($4, a, ","); print n}'

示例:

$ echo user:x:100:jason | awk -F: '{n=split($4, a, ","); print n}'
1
$ echo user:x:100:jason,bob,jim | awk -F: '{n=split($4, a, ","); print n}'
3

如何运作

  • -F:

    这告诉sed使用:作为字段分隔符

  • n=split($4, a, ","

    这告诉sed在逗号上拆分第四个字段。

  • print n

    这告诉sed打印字段4中找到的逗号分隔元素的数量。

简化

我们可以计算数字并一步打印:

getent group managers | awk -F: '{print split($4, a, ",")}'