Tuesday, January 16, 2007
All users of a group
/tmp/passwwd is a demo passwd file.
$ cat /tmp/passwwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:2:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:2:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
news:x:9:12:news:/etc/news:
Objective:
Merge all users(username,$1) of the same group(groupid,$4) together.
Awk Solution:
$ awk -F ":" '{Arr[$4]=sprintf("%s,%s",Arr[$4],$1)} END {for ( i in Arr) {printf("gid=%s(users=%s)\n",i,Arr[i])}}' /tmp/passwwd | sed 's/=,/=/'
gid=7(users=lp)
gid=12(users=mail,news)
gid=0(users=root,sync,shutdown)
gid=1(users=bin)
gid=2(users=daemon,adm,halt)
Subscribe to:
Post Comments (Atom)
© Jadu Saikia www.UNIXCL.com
No comments:
Post a Comment