码迷,mamicode.com
首页 > 系统相关 > 详细

在linux中输出每个group的用户成员

时间:2019-01-27 14:38:48      阅读:205      评论:0      收藏:0      [点我收藏+]

标签:awk   for   etc   key   linu   int   nbsp   $1   成员   

先提供使用文件一步一步获取相关信息:

1. 获取所有的用户:

awk -F: ‘{print $1 > "1.txt"}‘ /etc/passwd

2. 获取每个用户, 及其组:

awk ‘{val="groups "$1;system(val)}‘ 1.txt > 2.txt

3. 获取每个组的成员, 并排序显示:

awk -F: ‘{print $1}‘ /etc/passwd | awk ‘{val="groups "$1;system(val)}‘ | awk ‘{for(i=3; i<=NF;i++) {dic[$i]=(dic[$i]" "$1);}}END{for(key in dic) print key,":",dic[key]}‘ | sort

 

下面是串行化的命令:

awk -F: ‘{print $1}‘ /etc/passwd | awk ‘{val="groups "$1;system(val)}‘ | awk ‘{for(i=3; i<=NF;i++) {dic[$i]=(dic[$i]" "$1);}}END{for(key in dic) print key,":",dic[key]}‘ | sort

在linux中输出每个group的用户成员

标签:awk   for   etc   key   linu   int   nbsp   $1   成员   

原文地址:https://www.cnblogs.com/albizzia/p/10326161.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!