Take the 2-minute tour ×
Stack Overflow is a question and answer site for professional and enthusiast programmers. It's 100% free, no registration required.

Hey i want to count the amount of data in a certain column in awk.
an example dataset is
2 5 8
1 3 7
8 5 9

and I want to count the frequency of the 5 in the second colum. This is what i tried that didn't work

{
total = 0;
  for(i=1;i<=NF;i++) 
{
  if(i==2)
{if($i==5) {total++;}

}
  printf("%s  ", total);

}
}
share|improve this question

2 Answers 2

up vote 4 down vote accepted

How about the following:

awk '{ if ($2==5) count++ } END { print count }'
share|improve this answer
4  
You can move the condition out of the block: awk '$2 == 5 {count++} END {print count}' –  glenn jackman Oct 27 '11 at 20:19
awk 'NR == 1 {ind = 0} $2 == 5 {ind++} END {print ind}' testdata.txt
share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.