用户与用户组对应关系脚本


#!/bin/bash
echo "用户名 用户主组 用户附属组"
for user in `awk -F':' '{if($3+0>500) print $1}' /etc/passwd`
do
         #id $user | grep -o '([^)]*)'  |sed 's/(//g' | sed 's/)//g' | xargs | awk -F " "  '{for (i=2;i<=NF;i++)printf("%s ", $i);print ""}'  | column -t 
         id $user | grep -o '([^)]*)'  |sed 's/(//g' | sed 's/)//g' | xargs  | awk '{$2="";print $0}'
done

sh user-id.sh | column -t

阅读正则表达式,需从里往外看。
如:id $user | grep -o '([^)]*)'
首先理解[^)]的意思:负值字符集合。匹配未包含的任意字符;即匹配未包含)的任意字符。之后加个*即可匹配出( )之内的所有内容。
xargs进行行列转换。


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容