Today (Saturday) We will make some minor tuning adjustments to MySQL.

You may experience 2 up to 10 seconds "glitch time" when we restart MySQL. We expect to make these adjustments around 1AM Eastern Daylight Saving Time (EDT) US.


Finding maximum occurrence value using awk


Login or Register to Reply

 
Thread Tools Search this Thread
# 1  
Finding maximum occurrence value using awk

Hi everyone, I'm a new member at the forum
I have a file like this: field 2 values are either 0 or negative. file test4:

Code:
100815    -20
118125    0
143616    0
154488    0
154488    0
154488    -6
196492    -5
196492    -9
196492    -7
27332    0
29397    0

I would like to print a line containing the maximum value in field 2 of all occurrences for each value in field 1. So the desired output should be:

Code:
100815    -20
118125    0
143616    0
154488    0
196492    -5
27332    0
29397    0

I am using awk to do this. But, there are two problems: first awk prints nothing when I try to get the maximum for the values with negative numbers but it has no problem when I try the same with positive numbers. This made me take the absolute values which I can later turn back to the original values. The second problem, I get the following output with my code:

Code:
100815    20
118125    0
143616    0
154488    6
196492    7
27332    0
29397    0

Although with absolute values I should get:

Code:
100815    20
118125    0
143616    0
154488    0
196492    5
27332    0
29397    0

My code is:
awk '{$2>0?$2=$2:$2=-$2} $2==0 {$2=0} {print}' test4 | awk 'NR==1 {a[$1]=$2} {a[$1]=$2 ; if ($2<a[$1]) a[$1]=$2; else a[$1]=a[$1];} END {for(i in a) print i"\t"a[i];}'

I am sure I'm missing something basic and this could probably be done in a much simpler way. Any help is appreciated
Best reagrds to all

Last edited by joeyg; 04-01-2013 at 10:48 AM.. Reason: Please wrap data and commands inside CodeTags
# 2  
Bumping up posts or double posting is not permitted in these forums.

Please read the rules, which you agreed to when you registered, if you have not already done so.

You may receive an infraction for this. If so, don't worry, just try to follow the rules more carefully. The infraction will expire in the near future

Thank You.

The UNIX and Linux Forums.
Login or Register to Reply

|
Thread Tools Search this Thread
Search this Thread:
Advanced Search

More UNIX and Linux Forum Topics You Might Find Helpful
Finding the maximum timestamp in a folder
smile689
I've the files in a directory in the following format having date +%Y%m%d%H YR_MNTH_2013061205 YR_MNTH_2013060107 and i need the latest file i.e; YR_MNTH_2013061205 to be moved to another folder #!/bin/ksh # Ksh 88 Version for test_time in YR* do --- done How can i achieve that !...... Shell Programming and Scripting
2
Shell Programming and Scripting
Finding maximum occurrence value using awk
meet77
Hi everyone, I'm a new member at the forum I mistakenly posted this elsewhere too. I have a file like this: field 2 values are either 0 or negative. file test4: 100815 -20 118125 0 143616 0 154488 0 154488 0 154488 -6 196492 -5 196492 -9 196492 -7 27332 0...... UNIX for Dummies Questions & Answers
5
UNIX for Dummies Questions & Answers
Finding minimum maximum and average
aroragaurav.84
I am trying to find the minimum maximum and average from one file which has values Received message from https://www.demandmatrix.net/app/dm/xml] in milliseconds. Received message from https://www.demandmatrix.net/app/dm/xml] in milliseconds. Received message from...... Shell Programming and Scripting
5
Shell Programming and Scripting
Finding Maximum value in a column
jaysean
Hello, I am trying to get a script to work which will find the maximum value of the fourth column and assign that value to all rows where the first three columns match. For example: 1111 2222 AAAA 0.3 3333 4444 BBBB 0.7 1111 2222 AAAA 0.9 1111 2222 AAAA 0.5 3333 4444 BBBB 0.4 should...... Shell Programming and Scripting
8
Shell Programming and Scripting
Finding nth occurrence in line and replacing it
stresing
Hi, I have several files with data that have to be imported to a database. These files contain records with separator characters. Some records are corrupt (2 separators are missing) and I need to correct them prior to importing them into the db. Example: ...... UNIX for Dummies Questions & Answers
5
UNIX for Dummies Questions & Answers

Featured Tech Videos