Rechercher : dans
Par :

Script pour compter des lignes de code

Dernière réponse le 13 déc 2007 à 22:54:05 zg2pro, le 16 avr 2007 à 22:08:24 
 Signaler ce message aux modérateurs

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é...

Configuration: Linux
Firefox 1.5.0.10

Meilleures réponses pour « script pour compter des lignes de code » dans :
GTA IV - Codes de triche VoirCes codes sont à saisir depuis le téléphone portable du jeu et ne fonctionnent qu'après avoir passé la deuxième mission du jeu. (Ne marche pas en ligne) Energie 482-555-0100 : Restaurer vie, armure et armes 362-555-0100 : Restaurer vie et...
Exécuter un script shell VoirExécution d'un script Pour pouvoir exécuter un script ou un programme en ligne de commande il y a plusieurs possibilités : 1. Le chemin absolu 2. Le chemin relatif 3. Modifier la variable PATH Note: Le Sha...
Code ASCII VoirLe codage des informations Le morse a été le premier codage à permettre une communication longue distance. C'est Samuel F.B.Morse qui l'a mis au point en 1844. Ce code est composé de points et de tirets (un codage binaire en quelque sorte...). Il...

1

nicobzz, le 17 avr 2007 à 00:03:42

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:
\/\**\*\/

Répondre à nicobzz

2

jipicy, le 17 avr 2007 à 00:06:48
  • +2

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 :

sed -e '/^\/\{2\}/d;/^$/d;/^\/\*.*\*\/$/d;/^\/\*/,/\*\/$/d' fich.txt | wc -l
supprime 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
/^\/\*/,/\*\/$/d
et compte les lignes restantes ;-))
Z'@+...che.
JP : Zen, my Nuggets ! ;-)
Le savoir n'est bon que s'il est partagé.

Répondre à jipicy

3

 nicobzz, le 17 avr 2007 à 00:13:44
  • +1

En fait il me semble que meme avec grep c'est pas gagné,
j'ai trouvé ce site:
http://abs.traduc.org/abs-4.2.01-fr/
qui explique tout ce qu'on peut faire avec des scripts,meme avec sed et awk il me semble que ça analyse ligne par ligne

Répondre à nicobzz