Awk sayım frekansı

Hey, awk'de belirli bir sütundaki veri miktarını saymak istiyorum.
örnek bir veri kümesi
2 5 8
  1 3 7
8 5 9

ve ikinci sütundaki 5 frekansını saymak istiyorum. Çalıştığım şey bu değildi

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

}
  printf("%s  ", total);

}
}
3

2 cevap

Aşağıdakilere ne dersiniz?

awk '{ if ($2==5) count++ } END { print count }'
4
katma
Durumu bloğun dışına taşıyabilirsiniz: awk '$ 2 == 5 {count ++} END {print count}'
katma yazar glenn jackman, kaynak
awk 'NR == 1 {ind = 0} $2 == 5 {ind++} END {print ind}' testdata.txt
0
katma