Comme j’ai passé beaucoup de temps à programmer sur Txt2tags en juin et en juillet, j’ai été amené à comparer avec mon ami Carl le nombre de lignes de code de nos projets libres respectifs. Or, contrairement à grep
, wc
ne fournit pas d’option -r
pour activer la récursivité.
Pour pallier cela, l’utilisation des classiques commandes Unix find
et xargs
est de rigueur. Ainsi, pour avoir le nombre total de lignes de tous les fichiers du répertoire faites :
$ find . -type f | xargs wc -l
Si, comme moi, seuls les fichiers python vous intéressent, vous pouvez ajouter un grep au milieu qui filtrera tous les noms de fichier se finissant par .py
:
$ find . -type f | grep .py$ | xargs wc -l
Ou, encore plus simple, vous pouvez utiliser l’option -name
de find
:
$ find . -name "*.py" | xargs wc -l
Tags: Commandes Unix, Libre, wc, Word Count
Even better: use SLOCCount (in the repository of your favorite GNU/Linux or BSD distribution): http://www.dwheeler.com/sloccount/
It does all you want by default… and much more! In particular, it ignores the blank lines and the comments.
SLOCCount est très bien, mais c’est un logiciel supplémentaire à installer si on a les droits pour le faire. Les commandes Unix sont quant à elles toujours disponibles.
Une solution simple consiste à utiliser les globbings de bash :
shopt -s globstar
wc -l **/*.py
Bashisme !
[…] d’y voir plus clair à l’aide de wc récursifs appliqués sur les répertoire contenant le code source des frameworks, et desquels j’ai […]