Visit Our UNIX and Linux User Community


Count occurrences in first column


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Count occurrences in first column
# 1  
Old 05-19-2015
Count occurrences in first column

input

Code:
amex-11	10	abc
amex-11	20	bcn
amed-12	1	abc

I tried something like this.

Code:
awk '{h[$1]++}; END { for(k in h) print k, h[k] }' rm1

output
Code:
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 second one. ....
# 2  
Old 05-19-2015
Not quite sure what you mean by "The second column represents the occurrences"

Perhaps this:

Code:
awk '{print $1,++c[$3],$2,$3}' infile


Last edited by Chubler_XL; 05-19-2015 at 06:25 PM..
# 3  
Old 05-19-2015
yes almost. more detailed example for clarification.

input
Code:
amex-11	10	abc
amex-11	20	bcn
amed-12	1	abc
amex-12	10	abc
amex-12	20	bcn
amed-13	1	abc

ouput shouldbe

Code:
amex-11	1 10	abc
amex-11	1 20	bcn
amed-12	2 1	abc
amex-12	3 10	abc
amex-12	3 20	bcn
amed-13	4 1	abc

# 4  
Old 05-19-2015
How about one of these two:

Code:
awk '{c[$1];$1=$1 OFS length(c)}1' infile


Code:
awk '
!($1 in c){c[$1]=++U}
$1=$1 OFS c[$1]' infile

This User Gave Thanks to Chubler_XL For This Post:
# 5  
Old 05-20-2015
Note: using length() to determine the number of elements in an array is a non-standard extension that only works in GNU awk ( and may work in BSD awk as an undocumented feature)...
# 6  
Old 05-20-2015
This one should work.

Code:
awk 'BEGIN{h[" "]=0;max=0}{ind=-1;for(k in h)if(k==$1){ind=h[k];break}if(ind==-1){ind=++max;h[$1]=ind}print $1,ind,$2,$3}' infile


Previous Thread | Next Thread
Test Your Knowledge in Computers #384
Difficulty: Medium
The Unix df command reports damaged disk space on file systems.
True or False?

9 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Count the number of string occurrences to display 0 entries in output

Hello Friends, Can somebody assist an issue I am having? I have a separate file with a list of account ids XXX200B02Y01 XXX200B03Y01 XXX200B05Y01 XXX200B07Y01 XXX200B08Y01 I call the file, and run an egrep against a directory and logfiles AccountID=$(cat... (2 Replies)
Discussion started by: liketheshell
2 Replies

2. 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

3. 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

4. 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

5. Shell Programming and Scripting

Count occurrences in awk

Hello, I have an output from GDB with many entries that looks like this 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,... (6 Replies)
Discussion started by: ikke008
6 Replies

6. 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

7. 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

8. UNIX for Dummies Questions & Answers

Search and Count Occurrences of Pattern in a File

I need to search and count the occurrences of a pattern in a file. The catch here is it's a pattern and not a word ( not necessarily delimited by spaces). For eg. if ABCD is the pattern I need to search and count, it can come in all flavors like (ABCD, ABCD), XYZ.ABCD=100, XYZ.ABCD>=500,... (6 Replies)
Discussion started by: tektips
6 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

Featured Tech Videos