如何对组中的用户进行排序?

时间:2015-12-17 16:35:07

标签: linux sorting

我在组中对用户进行排序时遇到问题。我在网上搜索,发现了这个:

getent group <groupname>

所以我尝试将此代码用于此

getent group MyMembers | sort

我输出的输出只是在没有排序的情况下列出组中的用户。像

MyMembers : zat,bat,aky

2 个答案:

答案 0 :(得分:1)

你可以用这样的Python单行代码来实现:

python -c "import grp; print(','.join(sorted(grp.getgrnam('MyMembers')[3])))"

其中','是结果字符串的分隔符,MyMembers是现有组的名称。

答案 1 :(得分:1)

或者,您可以使用awk和sed实现相同的目标:

grep ^MyMembers /etc/group | awk -F: '{print $4}' | tr , "\n" | sort | tr "\n" , | sed 's@,$@\n@'

这个命令grep用于/etc/group文件中的组名,然后用awk点击一个逗号分隔的用户的无序字符串,然后将一个字符串转换为一个tr的列表1}},使用sort对其进行排序,再次使用tr构造一个字符串,然后在字符串中的最后一项之后删除逗号并添加带sed的换行符。