1. 程式人生 > >在linux中輸出每個group的用戶成員

在linux中輸出每個group的用戶成員

並排 使用 etc 相關信息 lin 及其 pass 串行化 相關

先提供使用文件一步一步獲取相關信息:

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的用戶成員