Awk tel frequentie

Hallo, ik wil de hoeveelheid gegevens in een bepaalde kolom in awk. Tellen.
een voorbeeldgegevensset is
2 5 8
  1 3 7
8 5 9

en ik wil de frequentie van de 5 in de tweede kolom tellen. Dit is wat ik probeerde dat niet werkte

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

}
  printf("%s  ", total);

}
}
3

2 antwoord

Hoe zit het met het volgende:

awk '{ if ($2==5) count++ } END { print count }'
4
toegevoegd
U kunt de voorwaarde uit het blok verwijderen: awk '$ 2 == 5 {count ++} END {print count}'
toegevoegd de auteur glenn jackman, de bron
awk 'NR == 1 {ind = 0} $2 == 5 {ind++} END {print ind}' testdata.txt
0
toegevoegd