先提供使用文件一步一步获取相关信息:
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