How i get the max value of a row?


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting How i get the max value of a row?
# 1  
Old 06-03-2005
How i get the max value of a column?

I have a file like:

<word> 5
<word> 3
<word> 5
<word> 2
<word> 6
<word> 8
<word> 12


and i need to know the max value of the second column, in this case 12.

Plz help me!

Actually i need the TOTAL, AVERANGE and MAX VALUE and i'm using this in awk:

{
sum += $2
}
END {
print "Sum: ", sum, "Average:", sum/NR;
}

But i still need the max value of each column.

Last edited by Lestat; 06-03-2005 at 02:26 PM..
# 2  
Old 06-03-2005
nawk -f max.awk myFile

max.awk:
Code:
{
  if ( max[$1] < $2 )
     max[$1]=$2

  tot[$1] +=$2
  avg[$1]++
}
END {
  for (i in max)
    printf("[%s]: total->[%s] avg->[%.2f] max-> [%d]\n", i, tot[i], tot[i]/avg[i], max[i])
}


Last edited by vgersh99; 06-03-2005 at 03:00 PM..
# 3  
Old 06-03-2005
something is wrong with it cuz it's printing too much values as MAX, maybe the problem is in:
printf("[%s]: max-> [%d]\n", i, arr[i])

Cuz those line is into for
# 4  
Old 06-03-2005
fixed a line-wrap - see the original post.
# 5  
Old 06-03-2005
Error Not yet....

Something is wrong yet cuz: in file1 i have:

1
2
3
4
2
5
6
23
1

and when i do:
awk -f pmt_max.awk file1

i get:

[2]: total->[4] avg->[2.00] max-> [2]
[23]: total->[23] avg->[23.00] max-> [23]
[3]: total->[3] avg->[3.00] max-> [3]
[4]: total->[4] avg->[4.00] max-> [4]
[5]: total->[5] avg->[5.00] max-> [5]
[6]: total->[6] avg->[6.00] max-> [6]
[1]: total->[2] avg->[1.00] max-> [1]

but i just want an output like:
total= 47 avg= 5,22 max= 23

Plz your help

Quote:
Originally Posted by vgersh99
fixed a line-wrap - see the original post.
# 6  
Old 06-03-2005
Quote:
Originally Posted by Lestat
Something is wrong yet cuz: in file1 i have:

1
2
3
4
2
5
6
23
1

and when i do:
awk -f pmt_max.awk file1

<....snip....>
That was NOT the format of the file you posted originally.
Next time, pls be more specific.

Code:
{
  if ( max < $1 )
     max=$1

  tot+=$1
}
END {
    printf("total->[%s] avg->[%.2f] max-> [%d]\n", tot, tot/FNR, max)
}

# 7  
Old 06-03-2005
Thanx

This time everything work fine thanx a lot

Quote:
Originally Posted by vgersh99
That was NOT the format of the file you posted originally.
Next time, pls be more specific.

Code:
{
  if ( max < $1 )
     max=$1

  tot+=$1
}
END {
    printf("total->[%s] avg->[%.2f] max-> [%d]\n", tot, tot/FNR, max)
}

Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Print a row with the max number in a column

Hello, I have this table: chr1_16857_17742 - chr1 17369 17436 "ENST00000619216.1"; "MIR6859-1"; - 67 chr1_16857_17742 - chr1 14404 29570 "ENST00000488147.1"; "WASH7P"; - 885 chr1_16857_18061 - chr1 ... (5 Replies)
Discussion started by: coppuca
5 Replies

2. Shell Programming and Scripting

Splitting single row into multiple rows based on for every 10 digits of last field of the row

Hi ALL, We have requirement in a file, i have multiple rows. Example below: Input file rows 01,1,102319,0,0,70,26,U,1,331,000000113200000011920000001212 01,1,102319,0,1,80,20,U,1,241,00000059420000006021 I need my output file should be as mentioned below. Last field should split for... (4 Replies)
Discussion started by: kotra
4 Replies

3. Shell Programming and Scripting

Filter Row Based On Max Column Value After Group BY

Hello Team, Need your expertise on following: Here is the set of data: C1|4|C1SP1|A1|C1BP1|T1 C1|4|C1SP2|A1|C1BP2|T2 C2|3|C2SP1|A2|C2BP1|T2 C3|3|C3SP1|A3|C3BP1|T2 C2|2|C2SP2|A2|C2BP2|T1 I need to filter above date base on following two steps: 1. Group them by column 1 and 4 2.... (12 Replies)
Discussion started by: angshuman
12 Replies

4. Shell Programming and Scripting

Add Row from First Row (Split Row)

HI Guys, I have Below Input :- RepigA_hteis522 ReptCfiEtrBsCll_aofe MSL04_MSL2_A25_1A 0 9 MSL04_MSL2_A25_1B 0 9 MSL04_MSL2_A25_1C 0 9 RepigA ReptCfiEtrBsCll hteis522 aofe MSL04_MSL2_A25_1A 0 9 MSL04_MSL2_A25_1B 0 9 MSL04_MSL2_A25_1C 0 9 Split Data in two first row... (2 Replies)
Discussion started by: pareshkp
2 Replies

5. Shell Programming and Scripting

Add sum of columns and max as new row

Hi, I am a new bie i need some help with respect to shell onliner; I have data in following format Name FromDate UntilDate Active Changed Touched Test 28-03-2013 28-03-2013 1 0.6667 100 Test2 28-03-2013 03-04-2013 ... (1 Reply)
Discussion started by: gangaraju6
1 Replies

6. Shell Programming and Scripting

Identify max value in diff columns for same row

Hi, I have a file with 1M records ABC 200 400 2.4 5.6 ABC 410 299 12 1.5 XYZ 4 5 6 7 MNO 22 40 30 70 MNO 47 55 80 150 What I want is for all the rows it should take the max value where there are duplicates output ABC 410 400 12 5.6 XYZ 4 5 6 7 MNO 47 55 80 150 How can i... (6 Replies)
Discussion started by: Diya123
6 Replies

7. Shell Programming and Scripting

Sum value in a row and print the max

I have the input file in attached. I want the output file : Date , Time , Max_Bearer 11/01/2013 , 23:00 , 1447.894167 11/02/2013 , 00:00 , 1429.266667 11/03/2013 , 00:00 , 712.3175 11/04/2013 , 22:00 , 650.9533333 11/05/2013 , 23:00 , 665.9558333 11/06/2013 , 23:00 , 659.8616667... (2 Replies)
Discussion started by: justbow
2 Replies

8. Shell Programming and Scripting

awk, max value, array, row

Hello: I want to print out the entire row with max value in column 3 based on column 2. Input file is millions rows. test.dat: Contig1 lcl|1DL 111 155 265 27 Contig2 lcl|1DS 100 73 172 100 Contig3 lcl|1DL 140 698 837 140 Contig3 lcl|6DS 107 1488 1594... (1 Reply)
Discussion started by: yifangt
1 Replies

9. Shell Programming and Scripting

extracting row with max column value using awk or unix

Hello, BC106081_abc_128240811_128241377 7.96301 BC106081_abc_128240811_128241377 39.322 BC106081_cde_128240811_128241377 1.98628 BC106081_def_128240811_128241377 -2.44492 BC106081_abc_128240811_128241377 69.5504 FLJ00075_xyz_14406_16765 -0.173417 ... (3 Replies)
Discussion started by: Diya123
3 Replies
Login or Register to Ask a Question