Script pour compter des lignes de code
Résolu
zg2pro
-
nicobzz Messages postés 11 Date d'inscription Statut Membre Dernière intervention -
nicobzz Messages postés 11 Date d'inscription Statut Membre Dernière intervention -
Slt,
Je voudrais réaliser un script en bash ou tcsh peu importe qui compte les lignes effectives d'un code :
le script doit donc supprimer les lignes comprises entre un /* et un */
supprimer les lignes commencant par //
supprimer les lignes vides puis compter ce qui reste.
Tout cela dans le but d'établir des ratios de productivité (lignes codées à l'heure) sur le développement d'un code.
#! /bin/tcsh
set openComment "\/\*"
set unComment "\*\/"
#pour ne pas melanger commentaires et lignes de code :
tr '$openComment' "\n/*" < $1 | tr '$unComment' "*/\n"
je suis pas tres doue en cette matiere desole, j'ai pas trouvé mieux pour commencer ... et encore meme pas ca marche ca parce que ca enleve les etoiles sans slash, ouais je sais je suis une quiche...
apres evidemment faudrait faire une boucle je pense pour mettre des "//" au debut de toutes les lignes qui sont entre des "/*" et des "*/" puis supprimer tout ça...
bon bin si quelqu'un peut m'aider, je suis sur qu'en plus ca sert toujours ce genre de scripts... j'en serai gré...
Je voudrais réaliser un script en bash ou tcsh peu importe qui compte les lignes effectives d'un code :
le script doit donc supprimer les lignes comprises entre un /* et un */
supprimer les lignes commencant par //
supprimer les lignes vides puis compter ce qui reste.
Tout cela dans le but d'établir des ratios de productivité (lignes codées à l'heure) sur le développement d'un code.
#! /bin/tcsh
set openComment "\/\*"
set unComment "\*\/"
#pour ne pas melanger commentaires et lignes de code :
tr '$openComment' "\n/*" < $1 | tr '$unComment' "*/\n"
je suis pas tres doue en cette matiere desole, j'ai pas trouvé mieux pour commencer ... et encore meme pas ca marche ca parce que ca enleve les etoiles sans slash, ouais je sais je suis une quiche...
apres evidemment faudrait faire une boucle je pense pour mettre des "//" au debut de toutes les lignes qui sont entre des "/*" et des "*/" puis supprimer tout ça...
bon bin si quelqu'un peut m'aider, je suis sur qu'en plus ca sert toujours ce genre de scripts... j'en serai gré...
A voir également:
- Slcnt
- Code ascii - Guide
- Script vidéo youtube - Guide
- Code de déverrouillage oublié - Guide
- Code puk bloqué - Guide
- Code activation windows 10 - Guide
3 réponses
Salut,
Bon alors entendons nous bien ;-))
On doit supprimer :
- les lignes commençant par //
- les lignes entre /* et */ (avec ou sans retour chariot entre les balises)
- les lignes blanches
La ligne de commande qui suit :
- les lignes commençant par //
Bon alors entendons nous bien ;-))
On doit supprimer :
- les lignes commençant par //
- les lignes entre /* et */ (avec ou sans retour chariot entre les balises)
- les lignes blanches
La ligne de commande qui suit :
sed -e '/^\/\{2\}/d;/^$/d;/^\/\*.*\*\/$/d;/^\/\*/,/\*\/$/d' fich.txt | wc -lsupprime donc :
- les lignes commençant par //
/^\/\{2\}/d- les lignes blanches
/^$/d- les lignes entre /* et */ sans retour chariot entre les balises
/^\/\*.*\*\/$/d- les lignes entre /* et */ avec retour chariot entre les balises
/^\/\*/,/\*\/$/det compte les lignes restantes ;-))
bonjour,
en fait je pense que tr ne fait pas l'affaire , il faut plutot un truc comme grep qui reconnait les expressions régulières en utilisant les options -o (pour ne pas selectionner la ligne mais juste le match) et -v (pour inverser la selection) avec l'expr reg:
\/\**\*\/
en fait je pense que tr ne fait pas l'affaire , il faut plutot un truc comme grep qui reconnait les expressions régulières en utilisant les options -o (pour ne pas selectionner la ligne mais juste le match) et -v (pour inverser la selection) avec l'expr reg:
\/\**\*\/