Count occurrences in awk


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Count occurrences in awk
# 1  
Old 03-13-2012
Count occurrences in awk

Hello,
I have an output from GDB with many entries that looks like this
Code:
0x00007ffff7dece94	39	in dl-fini.c
0x00007ffff7dece97	39	in dl-fini.c
0x00007ffff7ab356c	50	in exit.c
0x00007ffff7aed9db in _IO_cleanup () at genops.c:1022
115	in dl-fini.c
0x00007ffff7decf7b in _dl_sort_fini (l=0x0, maps=0x7fffffffeab0, nmaps=4, 
    used=0x4 <Address 0x4 out of bounds>, ns=0) at dl-fini.c:115
0x00007ffff7ab3570	50	in exit.c
74	in exit.c

How can I count how many times "in exit.c", "in dl-fini.c" and "in genops.c" is in the file?
It shouldn't count "at+...", only "in+...".

The output has to be
Code:
3 in exit.c
2 dl-fini.c

# 2  
Old 03-13-2012
Why not grep -c "in exit.c" inputfile and the likes?
# 3  
Old 03-13-2012
Because it'spart of a bigger awk script, and I need it in arrays.
I also want a nice output file.
# 4  
Old 03-13-2012
Try this script:
Code:
awk '
BEGIN{A[1]="in exit.c"; A[2]="dl-fini.c"; A[3]="in genops.c"}

{for(i in A)if($0~A[i])B[i]++}

END{for(i in A){print B[i]"\t"A[i]}}' gdb_output

This User Gave Thanks to tukuyomi For This Post:
# 5  
Old 03-13-2012
Thanks, that works, but only for these 3.
After the "in", it can be anything...
I now have:
Code:
/in /{
count[$NF]++
}

END{
for(j in count)
print j "("count[j]")"
}

It works, but as you can see, it's not always the last field.
It's the field after "in". How can I define the arrays?
Here is a part of the source file:
Code:
0x00007ffff7ded32e	287	in dl-fini.c
0x00007ffff7ded32f in _dl_fini () at dl-fini.c:287
287	in dl-fini.c
0x00007ffff7ab3612 in __run_exit_handlers (status=15, listp=0x7ffff7dd94a8, 
    run_list_atexit=true) at exit.c:78
	in exit.c
78	in exit.c
0x00007ffff7ab3545	78	in exit.c
0x00007ffff7ab3548	78	in exit.c
46	in exit.c
78	in exit.c
46	in exit.c
83	in exit.c
84	in exit.c
83	in exit.c
84	in exit.c
90	in exit.c
0x00007ffff7ab3596	90	in exit.c
91	in exit.c
0x00007ffff7ab359f	91	in exit.c
0x00007ffff7ab35a6	91	in exit.c
0x00007ffff7ab35a9	91	in exit.c
0x00007ffff7ab35ab	91	in exit.c
_IO_cleanup () at genops.c:1007
	in genops.c


Last edited by ikke008; 03-13-2012 at 03:55 PM..
# 6  
Old 03-13-2012
You can add more in something in the BEGIN{} block code. Sorry, I can't help you much more =/
# 7  
Old 03-13-2012
Here you can find the source file:
GNU gdb (GDB) 7.0.1-debian Copyright (C) 2009 Free Software Foundation, Inc. L - Pastebin.com

I want the output file like this
Code:
   -               1 #include <stdio.h>
    -               2 
    -               3 int main(void)
    -               4 {
    1    0.14%      5   volatile int m=7;
    3    0.43%      6   m+=8;
    1    0.14%      7   return m;
    2    0.29%      8 } //7 1.00%
Other functions:
  419   59.94%  dl-fini.c
  152   21.75%  genops.c
   57    8.15%  exit.c
   18    2.58%  __do_global_dtors_aux
    7    1.00%  ../sysdeps/unix/sysv/linux/_exit.c
    7    1.00%  _IO_flush_all_lockp
    7    1.00%  _IO_cleanup
    7    1.00%  _dl_sort_fini
    5    0.72%  soinit.c
    4    0.57%  _fini
    2    0.29%  __run_exit_handlers
    2    0.29%  rtld.c
    2    0.29%  _dl_fini
    1    0.14%  main
    1    0.14%  libc-start.c
    1    0.14%  __libc_fini

Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

awk or sed script to count number of occurrences and creating an average

Hi Friends , I am having one problem as stated file . Having an input CSV file as shown in the code U_TOP_LOGIC/U_HPB2/U_HBRIDGE2/i_core/i_paddr_reg_2_/Q,1,1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,0,0,0... (4 Replies)
Discussion started by: kshitij
4 Replies

2. Shell Programming and Scripting

Count occurrences in first column

input amex-11 10 abc amex-11 20 bcn amed-12 1 abc I tried something like this. awk '{h++}; END { for(k in h) print k, h }' rm1 output amex-11 1 10 abc amex-11 1 20 bcn amed-12 2 1 abc Note: The second column represents the occurrences. amex-11 is first one and amed-12 is the... (5 Replies)
Discussion started by: quincyjones
5 Replies

3. Shell Programming and Scripting

Speed : awk command to count the occurrences of fields from one file present in the other file

Hi, file1.txt AAA BBB CCC DDD file2.txt abc|AAA|AAAabcbcs|fnwufnq bca|nwruqf|AAA|fwfwwefwef fmimwe|BBB|fnqwufw|wufbqw wcdbi|CCC|wefnwin|wfwwf DDD|wabvfav|wqef|fwbwqfwfe i need the count of rows of file1.txt present in the file2.txt required output: AAA 2 (10 Replies)
Discussion started by: mdkm
10 Replies

4. Shell Programming and Scripting

awk Group By and count string occurrences

Hi Gurus, I'm scratching my head over and over and couldn't find the the right way to compose this AWK properly - PLEASE HELP :confused: Input: c,d,e,CLICK a,b,c,CLICK a,b,c,CONV c,d,e,CLICK a,b,c,CLICK a,b,c,CLICK a,b,c,CONV b,c,d,CLICK c,d,e,CLICK c,d,e,CLICK b,c,d,CONV... (6 Replies)
Discussion started by: Royi
6 Replies

5. Shell Programming and Scripting

How to count occurrences in a specific column

Hi, I need help to count the number of occurrences in $3 of file1.txt. I only know how to count by checking one by one and the code is like this: awk '$3 ~ /aku hanya poyo/ {++c} END {print c}' FS="\t" file1.txt But this is not wise to do as i have hundreds of different occurrences in that... (10 Replies)
Discussion started by: redse171
10 Replies

6. Shell Programming and Scripting

Script to count word occurrences, but exclude some?

I am trying to count the occurrences of ALL words in a file. However, I want to exclude certain words: short words (i.e. <3 chars), and words contained in an blacklist file. There is also a desire to count words that are capitalized (e.g. proper names). I am not 100% sure where the line on... (5 Replies)
Discussion started by: Cronk
5 Replies

7. Shell Programming and Scripting

Help with Unix and Awk to count number of occurrences

Hi, I have a file (movies.sh), this file contains list of movies such as I want to redirect the movies from movies.sh to file_to_process to allow me process the file with out losing anything. I have tried Movies.sh >> file_to_process But I want to add the row number to the data... (2 Replies)
Discussion started by: INHF
2 Replies

8. Shell Programming and Scripting

Count the number of occurrences of the word

I am a newbie in UNIX shell script and seeking help on this UNIX function. Please give me a hand. Thanks. I have a large file. Named as 'MyFile'. It was tab-delmited. I am told to write a shell function that counts the number of occurrences of the ord “mysring” in the file 'MyFile'. (1 Reply)
Discussion started by: duke0001
1 Replies

9. UNIX for Dummies Questions & Answers

count occurrences and substitute with counter

Hi Unix-Experts, I have a textfile with several occurrences of some string XXX. I'd like to count all the occurrences and number them in reverse order. E.g. input: XXX bla XXX foo XXX output: 3 bla 2 foo 1 I tried to achieve this with sed, but failed. Any suggestions? Thanks in... (4 Replies)
Discussion started by: ptob
4 Replies
Login or Register to Ask a Question