Connaître le nombre de lignes d’un fichier
Vous souhaitez savoir le nombre de ligne d’un fichier?
cat monfichier.txt | wc -l |
Mais quand le fichier est monstrueux, c’est la misère, voici un script qui permet de faire une estimation :
wcle – word count line estimate |
./wcle.sh mon-gros-fichier.txt |
Compter les lignes de plusieurs fichiers à la fois
wc accepte plusieurs fichiers et affiche un total :
wc -l fichier1.txt fichier2.txt fichier3.log |
Compter récursivement avec find
Pour compter toutes les lignes d’un projet entier :
find . -name "*.py" -exec wc -l {} + | tail -1 |
Sans le tail -1, vous voyez le détail fichier par fichier.
Compter uniquement les lignes de code (hors commentaires et lignes vides)
Avec grep :
grep -cve '^\s*$' -e '^\s*//' -e '^\s*#' monfichier.c |
Pour un projet entier :
find . -name "*.py" -exec grep -cve '^\s*$' -e '^\s*#' {} + | awk -F: '{s+=$2} END {print s}' |
Statistiques de code avec cloc
Pour un rapport complet (lignes de code, commentaires, vides par langage) :
sudo apt install cloc |
Exemple de sortie :
Language Files Code Comment Blank |
Méthodes rapides pour fichiers énormes
Quand le fichier est vraiment monstrueux et que wc -l prend trop de temps :
- Estimation par échantillonnage (script
wcle.shci-dessus). La précision dépend de l’homogénéité du fichier. - Utiliser
awk: plus rapide quecat | wc -lcar pas de pipe :
awk 'END {print NR}' mon-gros-fichier.txt |
- Compter les retours à la ligne dans un fichier binaire ou une sauvegarde :
tr -cd '\n' < mon-fichier | wc -c |
Pour les fichiers de plusieurs Go, privilégiez toujours wc -l sans cat : c’est déjà l’outil le plus optimisé de votre système.`