Script that sorts and show only unique IP


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Script that sorts and show only unique IP
# 1  
Old 06-17-2010
Script that sorts and show only unique IP

Hi,

I have this data:

Code:
Jun 16  88.191.117.191  =  100
Jun 16  88.191.117.191  =  70
Jun 16  88.191.117.191  =  30
Jun 16  200.242.67.142  =  65
Jun 16  125.77.107.212  =  40
Jun 16  125.77.107.212  =  60

And I want to have the ff ouput:

Code:
Jun 16  88.191.117.191  =  200
Jun 16  125.77.107.212  =  100
Jun 16  200.242.67.142  =  65

It adds the 5th column ( value ) for the same IP address and then sort it.

I've thinking on this since yesterday but cant find the solution.
Can you help me on this ?
# 2  
Old 06-17-2010
Code:
$ cat input.txt
Jun 16  88.191.117.191  =  100
Jun 16  88.191.117.191  =  70
Jun 16  88.191.117.191  =  30
Jun 16  200.242.67.142  =  65
Jun 16  125.77.107.212  =  40
Jun 16  125.77.107.212  =  60
$ perl -le 'while($l=<>){@pt=split /=/,$l;$tot{$pt[0]}+=$pt[1];}print join "\n",map {$_."  =  ".$tot{$_}}keys%tot;' input.txt
Jun 16  88.191.117.191    =  200
Jun 16  125.77.107.212    =  100
Jun 16  200.242.67.142    =  65

# 3  
Old 06-17-2010
Thanks Pludi,

your script is in perl. do you have an equivalent bash shell script on this ?
sorry.. my existing script is on bash scripting.

I think its easy for me to understand if its using bash scripting.

thanks in advance

Last edited by linuxgeek; 06-17-2010 at 03:21 AM..
# 4  
Old 06-17-2010
This one may be easier to understand... though I didn't implement the sorting step:
Code:
$ perl -ane 'if ($a == 0) { push @x, @F; $a=1; next; }
             if ($a == 1 && $F[2] eq $x[2]) { $x[4] = $x[4] + $F[4]; }
             else { print "@x\n"; @x=(); push @x, @F; }
             END
             { print "@x\n"; }' inputfile
Jun 16 88.191.117.191 = 200
Jun 16 200.242.67.142 = 65
Jun 16 125.77.107.212 = 100
$

# 5  
Old 06-17-2010
Hi
Try this:


Code:
$ awk '{_[$1" "$2" "$3]+=$5;}END{for (i in _) print i, " = ",_[i];}' file
Jun 16 125.77.107.212  =  100
Jun 16 200.242.67.142  =  65
Jun 16 88.191.117.191  =  200

Guru.
# 6  
Old 06-17-2010
Thanks to all..

I love this forum Smilie
# 7  
Old 06-17-2010
This one sorts as well:
Code:
awk '{v=$5;$5="";A[$0]+=v}END{for (i in A) print i A[i]}' infile | sort -ut. -k3,6rn

Code:
Jun 16 88.191.117.191 = 200
Jun 16 125.77.107.212 = 100
Jun 16 200.242.67.142 = 65

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Script to find min for each unique value

I need a script that will search through multiple files and when the first 2 columns match, print out Columns 1 and 2 and the minimum value. File 1 24.01 -81.01 1.0 24.02 -81.02 1.0 24.03 -81.03 3.0 File 2 24.01 -81.01 5.0 24.02 -81.02 3.0 24.03 -81.03 ... (3 Replies)
Discussion started by: ncwxpanther
3 Replies

2. UNIX for Dummies Questions & Answers

Show ksh script started on boot

Hi, i need to know, which ksh script are executed on boot (Sun and aix OS). Where can i find it ? (5 Replies)
Discussion started by: nash83
5 Replies

3. UNIX for Dummies Questions & Answers

Print unique lines without sort or unique

I would like to print unique lines without sort or unique. Unfortunately the server I am working on does not have sort or unique. I have not been able to contact the administrator of the server to ask him to add it for several weeks. (7 Replies)
Discussion started by: cokedude
7 Replies

4. AIX

Poll of sorts - on LDAP

1) Do you use LDAP on AIX? (as a client) 2) If yes, what LDAP server technology do you use: a) IDS (or ITDS) - IBM Tivoli Directory Server b) AD c) openLDAP d) other - please list. I ask, because I am looking at openLDAP as well as IDS and am wondering if there is a clear preference I... (4 Replies)
Discussion started by: MichaelFelt
4 Replies

5. Shell Programming and Scripting

Expect script to show cisco configs

I know there are better ways to do this. I prefer snmp. I do not have the proper perl modules loaded on the platorm. Snmp isnt loaded on the platform. Telnet is not an option. I need to write an expect script to pull cisco equipment configs. The following code is executed once I gain... (0 Replies)
Discussion started by: popeye
0 Replies

6. Shell Programming and Scripting

Command to show unique strings in two files

how to display the unique strings in two files using shell script or commands. I tried diff and cmp but it shows the entire line, i need only the mismatched strings. File1: sat,sun,mon,tue rose,lilly,lotus white,red,blue,green,pink File2: sat,sun,mon,tue rose,sunflower,lotus... (4 Replies)
Discussion started by: Arun_Linux
4 Replies

7. Shell Programming and Scripting

Change unique file names into new unique filenames

I have 84 files with the following names splitseqs.1, spliseqs.2 etc. and I want to change the .number to a unique filename. E.g. change splitseqs.1 into splitseqs.7114_1#24 and change spliseqs.2 into splitseqs.7067_2#4 So all the current file names are unique, so are the new file names.... (1 Reply)
Discussion started by: avonm
1 Replies

8. Shell Programming and Scripting

Show pages on a script's big output

Hi again: I have this code which gives an large output(several screens), and I want to display on screen at a time (like more does)....how can I do this? echo echo "Los roles en el sistema son:" echo lsrole -a dfltmsg ALL|sed 's/dfltmsg=/Descripcion=/' thanks Israel. (4 Replies)
Discussion started by: iga3725
4 Replies

9. Shell Programming and Scripting

get part of file with unique & non-unique string

I have an archive file that holds a batch of statements. I would like to be able to extract a certain statement based on the unique customer # (ie. 123456). The end for each statement is noted by "ENDSTM". I can find the line number for the beginning of the statement section with sed. ... (5 Replies)
Discussion started by: andrewsc
5 Replies

10. Shell Programming and Scripting

Create a script which sorts a file

I have a file below which has a list of users and roles with each row having unique combination of users and roles. USER1 ROLE1 USER1 ROLE2 USER2 USER3 ROLE1 USER3 ROLE2 USER3 ROLE3 USER4 ROLE2 .... .... I am trying to create a script which sorts the above file to have all the... (2 Replies)
Discussion started by: stevefox
2 Replies
Login or Register to Ask a Question