Comment compter le nombre de lignes d'une sortie?

30

Disons que j'ai le programme:

Calculate.py

Existe-t-il une ligne de commande Unix qui compte le nombre de lignes générées par mon programme, Calculate.py?

MEhsan
la source

Réponses:

51

Vous pouvez diriger la sortie vers wc. Vous pouvez utiliser le -ldrapeau pour compter les lignes. Exécutez le programme normalement et utilisez un canal pour rediriger verswc.

python Calculate.py | wc -l

Alternativement, vous pouvez rediriger la sortie de votre programme vers un fichier, par exemple calc.out, et l'exécuter wcsur ce fichier.

python Calculate.py > calc.out
wc -l calc.out
cutrightjm
la source
3
Ce sont des petites choses comme ça qui rendent la tuyauterie si puissante. Nous nous ferions du bien de ramener cette interopérabilité au développement de logiciels, ce qui est, je suppose, ce qu'est la programmation fonctionnelle.
Joshua Pinter
1
@JoshuaPinter sur l'autre thand si vous voulez simplement diriger le nombre de lignes dans une autre fonction, vous devez maintenant analyser manuellement la sortie de wc. Heureusement, c'est facile ( cut -f1 -d' '), mais ce n'est pas le cas pour chaque commande. Il y a quelque chose à dire pour l'approche Powershell de faire de la primitive de ligne de commande un "objet", plutôt qu'un flux de texte.
shadowtalker
@shadowtalker Je ne connais pas Powershell mais passer du objects au lieu de Strings est logique. À un moment donné, j'aimerais approfondir davantage d'outils de ligne de commande.
Joshua Pinter
1

Au-dessus de communiquer (wc -l) comptera également les lignes vides. il vaut donc mieux utiliser la commande ci-dessous qui supprime les lignes vides et le compte

python Calculate.py |sed '/^$/d'| awk '{print NR}'| sort -nr| sed -n '1p'
Praveen Kumar BS
la source