我在组中对用户进行排序时遇到问题。我在网上搜索,发现了这个:
getent group <groupname>
所以我尝试将此代码用于此
getent group MyMembers | sort
我输出的输出只是在没有排序的情况下列出组中的用户。像
MyMembers : zat,bat,aky
答案 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
的换行符。