web-dev-qa-db-fra.com

Utiliser awk pour compter le nombre d'enregistrements

Je veux compter tous les enregistrements d'une table via awk mais NR imprime les enregistrements de tous les enregistrements et non le nombre total. J'ai même essayé:

NF==4,count++{print count}

Mais ça ne fonctionne pas correctement Comment puis-je le faire via awk?

19
Shweta

Veuillez montrer un échantillon de votre fichier et ce que vous voulez en faire (afficher la sortie souhaitée) la prochaine fois. Je devine juste ce que tu veux,

awk 'NF==4{count++} END {print count}' file

le nombre total d'enregistrements est indiqué par NR.

awk 'END{print NR}' file1 file2

le nombre total d'enregistrements est actuellement désigné par FNR.

awk 'END{print FNR}' file
33
kurumi

Je suppose que vous voulez dire le nombre total de lignes. En général, vous devez utiliser wc -l <filename> pour ça. Si vous voulez faire cela en utilisant awk, utilisez

awk '{print NR}' | tail -1

Si vous souhaitez uniquement utiliser awk, faites

awk 'BEGIN{i=0}{i++;}END{print i}' <filename>
14
Hari Menon