Count the occurances of numbers


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Count the occurances of numbers
# 8  
Old 06-01-2013
Hi Don,

Thank you very much for your answer. Please have a look at the input. I don't need to count the duplicate lines. I get the following output using your code.

Code:
80 2
45 2
28 1
6 1
76 2
58 0
30 1
12 3
50 0

---------- Post updated at 11:23 AM ---------- Previous update was at 11:13 AM ----------

Hi Don,

I want to skip all lines where 1st two fields appear in the same order as in a previous line.

The output order doesn't matter.

ThanksSmilie

Last edited by Scrutinizer; 06-02-2013 at 04:51 AM.. Reason: code tags
# 9  
Old 06-01-2013
OK. Try:
Code:
awk '
($1, $2) in seen {next}
{       c[$1] += ($3 <= 10)
        c[$2] += ($3 <= 10)
        seen[$1, $2]
}
END {   for(i in c) print i, c[i]}' file

This User Gave Thanks to Don Cragun For This Post:
# 10  
Old 06-02-2013
Hi Don,

I appreciate your sincere help!SmilieSmilie

---------- Post updated 06-02-13 at 02:41 AM ---------- Previous update was 06-01-13 at 11:50 AM ----------

Hi Don cragon,

Is it possible to use your code for large text files(around 90000 lines)? It works perfectly for small files. But for large files, number of counts are incorrect. Is there any solution for this problem?

Thanks!
# 11  
Old 06-02-2013
90000 lines does not sound like a very large file. Could there be some other problem? Could you specify in what way the counts are incorrect? What does your real data look like?
# 12  
Old 06-02-2013
Hi Scrutinizer,

Thanks for your comment. My real file looks as follows(9 columns).

Code:
aaa  bbb   290-307  290  307  A  jj-i      9.51013   17
aaa  bbb   290-307  290  307  A  gh-vb   17.79166  17
aaa  bbb   290-307  290  307  A  hj-k    17.93902  17
jkg  jnm   307-309  307  309  A  kf-cf   5.36406  2
jkg  jnm   307-309  307  309  A  gf-vg   5.31676  2
ght  tyu   307-310  307  310  A  hj-k    4.34634  3
ght  kyu   283-29   283  29   A  io-io   19.89    5

I used the program like this

Code:
awk '
($4, $5) in seen {next}
{       c[$4] += ($8 <=10)
        c[$5] += ($8 <=10)
        seen[$4, $5]
}
END {   for(i in c) print i, c[i]}'  file

The output using the above program

Code:
310 1
29  0
290 0
283 0
307 1
309 0


My desired output is

Code:
290 1
307 3
309 1
310 1
283 0
29  0


Last edited by Scrutinizer; 06-02-2013 at 11:26 AM.. Reason: code tags
# 13  
Old 06-02-2013
I get the desired output.
What's your OS and awk version?
# 14  
Old 06-02-2013
Quote:
Originally Posted by andreaalex
Hi Scrutinizer,

Thanks for your comment. My real file looks as follows(9 columns).

Code:
aaa  bbb   290-307  290  307  A  jj-i      9.51013   17
aaa  bbb   290-307  290  307  A  gh-vb   17.79166  17
aaa  bbb   290-307  290  307  A  hj-k    17.93902  17
jkg  jnm   307-309  307  309  A  kf-cf   5.36406  2
jkg  jnm   307-309  307  309  A  gf-vg   5.31676  2
ght  tyu   307-310  307  310  A  hj-k    4.34634  3
ght  kyu   283-29   283  29   A  io-io   19.89    5

I used the program like this

Code:
awk '
($4, $5) in seen {next}
{       c[$4] += ($8 <=10)
        c[$5] += ($8 <=10)
        seen[$4, $5]
}
END {   for(i in c) print i, c[i]}'  file

The output using the above program

Code:
310 1
29  0
290 0
283 0
307 1
309 0


My desired output is

Code:
290 1
307 3
309 1
310 1
283 0
29  0

Like MadeInGermany, I get your desired output when I run this script with the data given here. If you aren't getting those results, it is clear that the size of the file is not the problem; it is something in this data that is different from what we saw before. I note that the text I marked in red in your new input data, doesn't line up with the other data in this column in this file. I get the impression that there may be something else in your data that was lost when you copied and pasted your data into this posting. In addition to telling us which OS and version of awk you're using, please also show us the output of the command:
Code:
od -bc filename

with filename replaced by the name of the file containing the data above.

PS. Note also that the output line shown in blue above would not be produced by this script. The print statement in this script will never put two spaces between the output fields???

Last edited by Don Cragun; 06-02-2013 at 01:40 PM..
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Grep pattern file and count occurances

Guys I am trying grep to read from pattern file and count occurances of each word. input is firstplace secondplace secondpot patternfile is place first second i want the following. 1-count number of times keywords in patternfile occurs in begining of each line in input file. so... (12 Replies)
Discussion started by: ahfze
12 Replies

2. Shell Programming and Scripting

Count the number of occurances for multiple files

I have some text files as shown below. I would like to add the values of each string. Your help would be appreciated!! file1.txt SUS 2 PRS 2 ALI 1 PRS 1 GLK 2 file2.txt PRS 3 GLK 6 SUS 18 Desired output SUS 20 PRS 6 (2 Replies)
Discussion started by: arch
2 Replies

3. Shell Programming and Scripting

How to count number of occurances of string in a file?

Gurus, Need little guidance. I have A.txt and B.txt file. B.txt file contains Unique strings. Sample content of B.txt file for which i cut the fourth column uniquely and output directed to B.txt file And A.txt file contains the above string as a fourth column which is last column. So A.txt... (7 Replies)
Discussion started by: Shirisha
7 Replies

4. Shell Programming and Scripting

Count occurances of X Y Z in a file in 1 go.

Hi. I need to count multiple occurrences of X Y Z in a file in 1 go. At the moment I have the following scripts: ssh readonly@$ServerIP 'YEAR=xx;DAY=xx;MONTH=xx;LMONTH=xx;for i in 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 \ 16 17 18 19 20 21 22 23; do cat... (13 Replies)
Discussion started by: msullivan
13 Replies

5. Shell Programming and Scripting

nawk-how count the number of occurances of a pattern, when don't know the pattern

I've written a script to count the total size of SAN storage LUNs, and also display the LUN sizes. From server to server, the LUNs sizes differ. What I want to do is count the occurances as they occur and change. These are the LUN sizes: 49.95 49.95 49.95 49.95 49.95 49.95 49.95 49.95... (2 Replies)
Discussion started by: cyber111
2 Replies

6. UNIX for Dummies Questions & Answers

Count occurances in a file

Hi, I have a fixed width file in the following format Sr.No A.No Name 1 2 PPP 3 4 PPP 5 6 TTT 7 8 OOO 9 10 OOO 11 12 OOO The 3rd column starts at position 10 and ends at 15. I want to count the number of occurances of each Name and output to a file Example in the... (2 Replies)
Discussion started by: samit_9999
2 Replies

7. Shell Programming and Scripting

Count occurances of a character in a file

I want to find the number of occurences of a character in a file. How do i do it. Eg: $cat file1.txt Welcome to World of Unix. $ If i want to find the occurences of 'o' then I should be getting 3. Thanks. (6 Replies)
Discussion started by: Shivdatta
6 Replies

8. Shell Programming and Scripting

count the number chracters occurances in a line

Hi Could anybody tell me how to count the number of occurances of a character within a LINE. actually i have a single line with words seperated with '+' chracter e.g. abc+def+ghj+jkl+asd i want to separte the words above. Please provide the necessary logic in the form of a SHELL... (6 Replies)
Discussion started by: skyineyes
6 Replies

9. Shell Programming and Scripting

Count if numbers are not repetitive

Hi All, I have an input below and i would want to do a count on all the term "aaa" and count only once if the number in first column is the same. For eg, if i use a "grep -c aaa input" command, the count will be "8". However, i would want the count to be "6" instead since 2 numbers in the 1st... (7 Replies)
Discussion started by: Raynon
7 Replies

10. Shell Programming and Scripting

Find occurances of a directory and count

I am writing my first shell script to do the following: Find all occurrences of a directory from the pwd Delete the directory (which is a hidden directory) Provide feedback w/ the number of directories deleted The problems I am having are two-fold: The user may not have the appropriate... (2 Replies)
Discussion started by: stringman
2 Replies
Login or Register to Ask a Question