Sponsored Content
Top Forums Shell Programming and Scripting Sorting group information for accounts Post 302679841 by neutronscott on Tuesday 31st of July 2012 08:46:57 PM
Old 07-31-2012
Code:
#!/usr/bin/awk -f

#firstly bring in this systems group entries
BEGIN {
        FS=OFS=":"
        cmd="getent group"
        while ((cmd | getline) > 0) {
                g_idx[g_idx_max++]=$3   #preserve order
                #create new line,excluding any users-- group:x:gid:
                group[$3]=$1 OFS $2 OFS $3 OFS
                g_cnt[$3]=0
        }
        FS="|"
}

{
        for (i=4;i<=NF;i++) {
                if (!length($i)) continue
                if (!($i in group)) {
                        printf("%s to be added to gid %d, but it doesn't exist!\n", $1, $i) > "/dev/stderr"
                        continue
                }
                group[$i]=group[$i] (g_cnt[$i]++ ? "," : "") $1
        }
}

#all calculated up, print
END {
        for (i=0;i<g_idx_max;i++)
                if (g_cnt[g_idx[i]] > 0) #only print ones we added to
                        print group[g_idx[i]]
}


Last edited by neutronscott; 07-31-2012 at 09:53 PM..
This User Gave Thanks to neutronscott For This Post:
 

7 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Getting information from /etc/group

How can I retrieve the group id of an entry in the /etc/group file given the group name? I tried using cut and grep but cant get around the problem.. I think this problem can be solved using these commands but I dont know how (I am a newbie at this) (11 Replies)
Discussion started by: sleepster
11 Replies

2. Shell Programming and Scripting

Group on the basis of common text in the square bracket and sorting

File A 99 >ac >ss >juk 70 >acb >defa 90 >ca 100 >aa >abc >bca 85 >cde 81 >ghi >ghij 87 >def >fgh <ijk 89 >fck >ghij >kill >aa The given output shud be 100 >aa >abc >bca 87 >def >fgh <ijk 89 >fck >ghij >kill >aa (2 Replies)
Discussion started by: cdfd123
2 Replies

3. Shell Programming and Scripting

Sorting a list of filenames but keeping the path information.

Hi All I've googled around for this and can't see a way of doing it. I have a file that contains a number of records that are layed out something like the following. /path/to/directory/that/contains/a/file/I/need/filename.pdf The path itself can vary both in terms of the names and the... (7 Replies)
Discussion started by: Bashingaway
7 Replies

4. Shell Programming and Scripting

need a one liner to grep a group info from /etc/group and use that result to search passwd file

/etc/group tiadm::345:mk789,po312,jo343,ju454,ko453,yx879,iy345,hn453 bin::2:root,daemon sys::3:root,bin,adm adm::4:root,daemon uucp::5:root /etc/passwd mk789:x:234:1::/export/home/dummy:/bin/sh po312:x:234:1::/export/home/dummy:/bin/sh ju454:x:234:1::/export/home/dummy:/bin/sh... (6 Replies)
Discussion started by: chidori
6 Replies

5. Shell Programming and Scripting

New To UNIX - Need Script to create report of user & group accounts

Hi, I'm new to the world of UNIX and have been asked to create a complex script (at least complex to me:confused:) for AIX UNIX to create a report of all the users on the server including server, user, UID, groups, GID, etc. Found a script using lsuser, but the output is still lacking. 2 things I... (2 Replies)
Discussion started by: panthur
2 Replies

6. Shell Programming and Scripting

Sorting group of records and loading last record

Hi Everyone, I have below record set. File is fixed widht file 101newjersyus 20150110 101nboston us 20150103 102boston us 20140106 102boston us 20140103 I need to group record based on first 3 letters in our case(101 and 102) and sort last 8 digit in ascending order and print only... (4 Replies)
Discussion started by: patricjemmy6
4 Replies

7. UNIX for Beginners Questions & Answers

HELP on 'sectional' or 'group' sorting

Hi, I need to do some section/group sorting. At the moment, I get around it by grep group by group and then re-directing to the same 'final' output file. Below is what's been sorted so far based on the second field $ awk -F"," '{ { print $5 " == " $6 } }' /tmp/x.csv | grep -v "^env" | grep... (2 Replies)
Discussion started by: newbie_01
2 Replies
groupdel(1M)						  System Administration Commands					      groupdel(1M)

NAME
groupdel - delete a group definition from the system SYNOPSIS
/usr/sbin/groupdel group DESCRIPTION
The groupdel utility deletes a group definition from the system. It deletes the appropriate entry from the /etc/group file. OPERANDS
group An existing group name to be deleted. EXIT STATUS
The following exit values are returned: 0 Success. 2 Invalid command syntax. A usage message for the groupdel command is displayed. 6 group does not exist. 10 Cannot update the /etc/group file. FILES
/etc/group system file containing group definitions ATTRIBUTES
See attributes(5) for descriptions of the following attributes: +-----------------------------+-----------------------------+ | ATTRIBUTE TYPE | ATTRIBUTE VALUE | +-----------------------------+-----------------------------+ |Availability |SUNWcsu | +-----------------------------+-----------------------------+ SEE ALSO
users(1B), groupadd(1M), groupmod(1M), logins(1M), useradd(1M), userdel(1M), usermod(1M), attributes(5) NOTES
The groupdel utility only deletes a group definition that is in the local /etc/group file. If a network nameservice such as NIS or NIS+ is being used to supplement the local /etc/group file with additional entries, groupdel cannot change information supplied by the network nameservice. groupdel fails if a group entry (a single line in /etc/group) exceeds 2047 characters. SunOS 5.11 27 Aug 2008 groupdel(1M)
All times are GMT -4. The time now is 08:04 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy