finding max size


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting finding max size
# 1  
Old 09-14-2011
finding max size

Hi

I have a list of 2000 records with multiple entries and I want to get the max size for each entry

Code:
 ABC   1
            ABC   2
            ABC   3
            ABC   4
            DEF   1
            DEF   2
            DEF   2
            DEF   2
            DEF   2
            DEF   3
            DEF   4
            XYZ   1
            XYZ   2
            XYZ   3
            XYZ   3
            XYZ   3
            XYZ   4
            XYZ   4
            XYZ   4
            XYZ   5

so on..

I have presented here 3 different cases.

In the first case ABC all entries are only once.. So the max size for this 1

In second case DEF has "2" occurring four times so the max size for this 4

In third case XYZ both "3" and "4" are occurring three times so the max size is 3

output:
Code:
  ABC   1
             DEF   4
             XYZ   3

Thanks,

Last edited by Scott; 09-14-2011 at 04:16 PM.. Reason: Fixed code tags
# 2  
Old 09-14-2011
Code:
awk '{ if(A[$1] < $2) A[$1]=$2; }
END { for(k in A) { print k, A[k]; }' < file

# 3  
Old 09-14-2011
Hi,

Thanks for the reply..

The code does not work as per my requirement. its outputting the last number in the entry ( example
Code:
  ABC 1
                                        ABC 2
                                        ABC 3
                                        ABC 4
                                        ABC 4
                                        ABC 5

Instead of outputting as 2 its outputting 5

What I need is the highest number of times a number is repeating for a particular entry. In the above example of all "4" is repeating two times. So the output should be "2".

Thanks,

Last edited by Scott; 09-14-2011 at 07:11 PM.. Reason: .
# 4  
Old 09-14-2011
Whatever you were running, it wasn't what I posted: It had a syntax error and didn't run at all Smilie

[edit] Ah, I see... Hmm... Working on it.
# 5  
Old 09-14-2011
Hi,

I have resolved the erorr in the code and then used it.. Only after that I got the error.

Thanks,

Diya
# 6  
Old 09-14-2011
That's what I get for answering too fast... Here's a solution that does what you want:

Code:
$ awk '{       A[ $1 "#" $2 ]++;       }
END {   for(K in A)
        {
                split(K, L, "#");
                STR=L[1]        ;       VAL=L[2]

                if(C[STR] <= A[K])
                {
                        C[STR]=A[K];
                        T[STR]=VAL
                }
        }

        for(K in T)     print K, T[K];
} < data
ABC 4
XYZ 3
DEF 2
$

There's an inconsistency in your example though. If we get a pattern like
Code:
A 1
A 1
A 2
A 2

which should be chosen, 1 or 2? Your example has ABC choosing the first max and DEF choosing the last max...

To choose the first instead of the last, change
Code:
if(C[STR] <= A[K])

to
Code:
if(C[STR] < A[K])

# 7  
Old 09-14-2011
Sorry if I was unclear about my question.

The code is outputting the number which is repeating maximum times. What I want is to output the max times its repeating

for instance:
Code:
ABC   1
ABC   2
ABC   3
ABC   4
ABC   5
ABC   5
ABC   5
ABC   6
ABC   6
ABC   7
ABC   7
ABC   7
ABC   7
ABC   7
ABC   8
ABC   8
ABC   9
ABC   10

In this example 7 is rpeating the maximum number of times. Its repeating five times so the output should be 5.. The code what you sent earlier outputs "7" instead of "5".

The other example which you mentioned
Code:
A 1
A 1
A 2
A 2

In this scenario 2 is the maximum times a number(either 1 or 2) is repeating. So the output is 2

Thanks,

Last edited by Scott; 09-14-2011 at 07:11 PM.. Reason: Code tags...
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Finding max of a column grouping by the time

Hi, I have the below text: 16:00 0.50 16:00 0.30 16:00 0.00 16:00 0.00 16:00 0.30 16:01 0.00 16:01 0.30 I want to find the max of the 2nd column grouping by the values in the 1st column using awk. So 16:00 0.50 16:01 0.30 I have tried (3 Replies)
Discussion started by: satishrao
3 Replies

2. Shell Programming and Scripting

Finding max number in filename and opening it

Hi, I have files named as energy.dat.1 energy.dat.2 energy.dat.3 ... energy.dat.2342 I would like to find the file with maximum number in the filename (ex. energy.dat.2342) and open it. Would you please share your expertize in writing the script? Thanks in advance. (8 Replies)
Discussion started by: rpd25
8 Replies

3. Shell Programming and Scripting

Finding Max value from an array

Hi, I need to find max and second max element from an array. array contains 0338,0337,0339,0340,0401,0402,0403 (10 Replies)
Discussion started by: vjasai
10 Replies

4. Shell Programming and Scripting

Help in finding the max and min position

Hi, I have this input file called ttbitnres (which is catenated and sorted):- 8 0.4444 213 10 0.5555 342 11 0.5555 321 12 0.5555 231 13 0.4444 400 My code is at :- #!/bin/bash echo -e Version "\t" Number of Pass "\t" Number of Fail "\t" Rank Position "\t"Min "\t" Max... (1 Reply)
Discussion started by: ahjiefreak
1 Replies

5. UNIX for Advanced & Expert Users

Max. file size

i want to know what is the maximum file size supported by linux with ext3 file system. (1 Reply)
Discussion started by: nagalenoj
1 Replies

6. Solaris

max. size of file

I wants to ask that what is the max size of file that we can create in the unix file system. (2 Replies)
Discussion started by: sameerghogre
2 Replies

7. Shell Programming and Scripting

finding duplicate files by size and finding pattern matching and its count

Hi, I have a challenging task,in which i have to find the duplicate files by its name and size,then i need to take anyone of the file.Then i need to open the file and find for more than one pattern and count of that pattern. Note:These are the samples of two files,but i can have more... (2 Replies)
Discussion started by: jerome Sukumar
2 Replies

8. Shell Programming and Scripting

Finding max value

My code below is supposed to find which company had the most business and then print the appropriate fields from another file which are the companies ID number and name. I can loop through awk and display all the total amount of business for each company but I need help in only printing out the... (1 Reply)
Discussion started by: Enigma23
1 Replies

9. UNIX for Dummies Questions & Answers

Max I/O Size

My HP-UX 11.0 system is supporting an Oracle database. I have found a number of references on the Net to the "Max I/O size" in relation to setting Oracle parameters. How can I tell what my max i/o size is? I originally made the assumption that it was referring to my stripe size but now I think... (1 Reply)
Discussion started by: keelba
1 Replies

10. Shell Programming and Scripting

Max size of variable

What is the maximum amount of characters that you can have in a varible name in the ksh shell? (1 Reply)
Discussion started by: lesstjm
1 Replies
Login or Register to Ask a Question