awk grouping by name script


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting awk grouping by name script
# 1  
Old 08-03-2010
awk grouping by name script

Hello

I am trying to figure out a script which could group a log file by user names. I worked with awk command and I could trim the log file to:

Code:
<USER: John Frisbie > /* Thu Aug 06 2009 15:11:45.7974 */ FLOAT GRANT WRITE John Frisbie (500 of 3005 write)
<USER: Shawn Sanders > /* Thu Aug 06 2009 15:11:49.7695 */ FLOAT GRANT WRITE Shawn Sanders (552 of 3004 write)
<USER: John Frisbie > /* Thu Aug 06 2009 15:12:02.3639 */ LOGIN John Frisbie

But I need to have the output like:

Code:
Users
John Frisbie
FLOAT GRANT WRITE Thu Aug 06 2009 15:11:45.7974 (500 of 3005 write)
LOGIN Thu Aug 06 2009 15:12:02.3639

Shawn Sanders
FLOAT GRANT WRITE Thu Aug 06 2009 15:11:49.7695 (552 of 3004 write)

I have tried commands like:
Code:
awk 'BEGIN{print "Users"} {a[$2]=a[$2]+[$3]}END{for (i in a) printf(i,a[i], $5,$6,$7,$8,$9,$11,$12,$13,$14,$15]} ' log

or
Code:
User= $1,$2
awk '{if ($1,$2 == "User")print $5,$6,$7,$8,$9,$11,$12,$13,$14,$15}' log

But after several results it seems that I am completely lost. I am not sure how can I group the user ids by name and then display the user name only once and below of it all the information associated .

If you could please provide your advice I will appreciate it.

Thanks!

Last edited by Scott; 08-03-2010 at 07:37 PM.. Reason: Please use code tags
# 2  
Old 08-03-2010
something to start with:
Code:
nawk -F'/' '{u[$1]; f2[$1]=($1 in f2)? f2[$1] ORS $2:$2; f3[$1]=($1 in f3)? f3[$1] ORS $3:$3} END {for(i in u) print i ORS f2[i] ORS f3[i]}' myLog

This User Gave Thanks to vgersh99 For This Post:
# 3  
Old 08-03-2010
Wow!Smilie

Works like magic. Thank you Smilie. So it is time for me to review it and understard it. I have still too much to learn
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Grouping and Subgrouping using awk

I have a data which looks like 1440993600|L|ABCDEF 1440993600|L|ABCD 1440993601|L|ABCDEF 1440993602|L|ABC 1440993603|L|ABCDE . . . 1441015200|L|AB 1441015200|L|ABC 1441015200|L|ABCDEF So basically, the $1 is epoch date, $2 and $3 is some application data From one if the... (5 Replies)
Discussion started by: hemanty4u
5 Replies

2. Shell Programming and Scripting

Name grouping

awk 'FNR==NR {a; next} $NF in a' genes.txt refseq_exons.txt > output.txt I can not figure out how to group the same name in $4 together. Basically, all the SKI together in separate rows and all the TGFB2. Thank you :). chr1 2160133 2161174 SKI chr1 218518675 218520389 TGFB2... (1 Reply)
Discussion started by: cmccabe
1 Replies

3. UNIX for Dummies Questions & Answers

awk Grouping and Subgrouping with Counts

So I have a ton of files, lines in excess of 3 MIL per file. I need to find a solution to find the top 3 products, and then get the top 5 skews with a count of how many times that skew was viewed. This is a sample file, shortened it for readability. Each ROW is counted as view. Here's the... (10 Replies)
Discussion started by: JoshCrosby
10 Replies

4. Shell Programming and Scripting

Grouping

Hi all, I am using following command: perl program.pl input.txt output.txt CUTOFF 3 > groups_3.txt containing program.pl, two files (input.txt, output.txt) and getting output in groups_3.txt: But, I wish to have 30 files corresponding to each CUTOFF ranging from 0 to 30 using the same... (1 Reply)
Discussion started by: bioinfo
1 Replies

5. Shell Programming and Scripting

grouping using sed or awk

I have below inside a file. 11.22.33.44 user1 11.22.33.55 user2 I need this manipulated as alias server1.domain.com='ssh user1@11.22.33.44' alias server2.domain.com='ssh user2@11.22.33.55' (3 Replies)
Discussion started by: anil510
3 Replies

6. Shell Programming and Scripting

awk and perl grouping.

Hello folks. After awk, i have decided to start to learn perl, and i need some help. I have following output : 1 a 1 b 2 k 2 f 3 s 3 p Now with awk i get desired output by issuing : awk ' { a = a FS $2 } END { for ( i in a) print i,a }' input 1 a b 2 k f 3 s p Can... (1 Reply)
Discussion started by: Peasant
1 Replies

7. Shell Programming and Scripting

AWK script to create max value of 3rd column, grouping by first column

Hi, I need an awk script (or whatever shell-construct) that would take data like below and get the max value of 3 column, when grouping by the 1st column. clientname,day-of-month,max-users ----------------------------------- client1,20120610,5 client2,20120610,2 client3,20120610,7... (3 Replies)
Discussion started by: ckmehta
3 Replies

8. Shell Programming and Scripting

File splitting and grouping using unix script

Hello All, I have a small problem with file group/splitting and I am trying to get the best way to perform this in unix. I am trying with awk but need some suggestion what would be the best and fastest way to-do it. Here is the problem. I have a fixed length file with filled with product... (4 Replies)
Discussion started by: nandhan11891
4 Replies

9. Shell Programming and Scripting

Grouping using sed/awk ?

I run awk cat $1|awk '{print $6}' and get a lot of results and I want results to group them. For example my result is (o/p is unknown to user) xyz xyz abc pqr xyz pqr etc I wanna group them as xyz=total found 7 abc=total .... pqr= Thank (3 Replies)
Discussion started by: pujansrt
3 Replies

10. Shell Programming and Scripting

grouping of numbers with script

Suppose u have a file 2 4 6 11 22 13 23 43 12 4 33 31 45 then u want a output like 0-10 4 10-20 3 20-30 2 30-40 2 40-50 2 (2 Replies)
Discussion started by: cdfd123
2 Replies
Login or Register to Ask a Question

Featured Tech Videos