我正在尝试找出我的/etc/passwd中的所有用户,它的user-id为0。它应该显示用户名和用户id。我尝试了以下几种方法:
awk -F: '{
count[$3]++;}END {
for (i in count)
print i, count[i];
}' passwd它给出了重复的用户ids以及它们出现的次数。我实际上还想要用户名以及类似的复制用户名
zama 0
root 0
bin 100
nologin 100如果解决方案提供了awk关联数组,那就更好了。其他方法也很好。
发布于 2012-03-02 14:16:48
这是你想要的吗?
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发布于 2012-03-02 23:17:07
这可能对你有用:
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解决方案:
cut -d: -f1,3 /etc/passwd |
sort -st: -k2,2n |
tr ':' ' ' |
uniq -Df1 |
sed 's/\(.*\) \(.*\)/\2 \1/p;d'发布于 2013-04-27 04:00:27
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}'
donehttps://stackoverflow.com/questions/9528804
复制相似问题