首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >标识用户名在/etc/passwd文件中具有重复的user-id

标识用户名在/etc/passwd文件中具有重复的user-id
EN

Stack Overflow用户
提问于 2012-03-02 14:08:04
回答 3查看 2.3K关注 0票数 2

我正在尝试找出我的/etc/passwd中的所有用户,它的user-id为0。它应该显示用户名和用户id。我尝试了以下几种方法:

代码语言:javascript
复制
awk -F: '{
count[$3]++;}END {
for (i in count)
   print i, count[i];
 }'  passwd

它给出了重复的用户ids以及它们出现的次数。我实际上还想要用户名以及类似的复制用户名

代码语言:javascript
复制
zama      0
root      0
bin       100
nologin   100

如果解决方案提供了awk关联数组,那就更好了。其他方法也很好。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-03-02 14:16:48

这是你想要的吗?

代码语言:javascript
复制
awk -F: '{
count[$3]++; names[$3 "," count[$3]] = $1}END {
for (i in count) {
  for (j = 1; j <= count[i]; j++) {
   print names[i "," j], i, count[i];
  }
}
 }'  passwd
票数 2
EN

Stack Overflow用户

发布于 2012-03-02 23:17:07

这可能对你有用:

代码语言:javascript
复制
awk -F: '$3~/0/{if($3 in a){d[$3];a[$3]=a[$3]"\n"$3" "$1}else{a[$3]=$3" "$1}};END{for(x in d)print a[x]}' /etc/passwd

或者这个非awk解决方案:

代码语言:javascript
复制
cut -d: -f1,3 /etc/passwd |
sort -st: -k2,2n |
tr ':' ' ' |
uniq -Df1 | 
sed 's/\(.*\) \(.*\)/\2 \1/p;d'
票数 2
EN

Stack Overflow用户

发布于 2013-04-27 04:00:27

代码语言:javascript
复制
myid=`cat passwd|awk -F: '{print $3 }'| sort | uniq -d`
for i in `echo "$myid"`;do
    egrep  "^.*:x:$i" passwd | awk -F: '{print $1 , $3}'
done
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9528804

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档