1

yop,

j'ai un problème à résoudre en sed (et uniquement en sed, pas de shell script ou autre) : il faut, entre autres, compter le nbr de lignes de toutes les fonctions d'un fichier .c; problème : il n'existe pas à ma connaissance de variables en sed, donc même en mémorisant le numero de la 1ere ligne dans le hold space, je ne vois pas trop comment faire une sorte de soustraction une fois arrivé à la dernière ligne de la fonction.

(si je tombe sur qqun qui sait se servir de sed et qui pense à regarder cette rubrique j'aurai bien de la chance grin)
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

2

Zephyr :
(si je tombe sur qqun qui sait se servir de sed et qui pense à regarder cette rubrique j'aurai bien de la chance grin)
tu m'étonnes, j'ai jamais vu de truc aussi tordu ! grin
sed, c'est bien l'éditeur? parce que j'ai parcouru rapidement le man et y'a pas de notion d'arthmétique ni de notion de variable :/

3

Un exemple bizarre de script avec une méthode qui semble permettre de faire de calculs, je sais pas si c'est applicable happy http://sed.sourceforge.net/grabbag/tutorials/greg_wc.txt

4

tu m'étonnes, j'ai jamais vu de truc aussi tordu ! grin
sed, c'est bien l'éditeur? parce que j'ai parcouru rapidement le man et y'a pas de notion d'arthmétique ni de notion de variable :/[/cite]
C'est bien là le problème wink
ExtendeD :
Un exemple bizarre de script avec une méthode qui semble permettre de faire de calculs, je sais pas si c'est applicable happy http://sed.sourceforge.net/grabbag/tutorials/greg_wc.txt

Oula en effet, mci v regarder ça, ça a l'air assez tordu grin
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

5

Bon, étant donné que le rendu était ce soir j'ai utilisé une méthode vraiment crade mais au moins ça marche grin

J'aurais du donner le sujet complet mais je l'ai pas ici, alors en gros : le script sed prend en paramètre un nom de fichier (.c), et il doit afficher pour chacune de ses fonctions :
[ Start ]
corps de la fonction, quel que soit le nbr de lignes qu'il prend, chaque ligne est précedée de 2 espace et tous les autres espaces éventuels de début de ligne sont supprimés *
[ End ] prototype de la fonction, suivi du nombre de lignes si il est <= à 25, ou bien "Too long" (ou qqchose du style) si il est > 25

j'ai pas la source ici, ça m'étonnerais que ça interesse grand monde mais on sait jamais donc si qqun veut que je la poste une fois que j'y aurai accès... ^^
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

6

C'est qui qui t'a demandé ça ? ton école ?

7

-

8

hibou
: C'est qui qui t'a demandé ça ? ton école ?

vui, je vais pas m'amuser à trouver des sujets à la con en sed tt seul wink
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

9

Euh... c'est un peu tard, mais bon rtfd quand même :/

info sed puis Examples puis Counting lines

Counting Lines
==============

   No strange things are done now, because `sed' gives us `wc -l'
functionality for free!!! Look:

     #!/usr/bin/sed -nf
     $=
avatar
;)

10

Ouais mais non, ça suffit pas.

11

#! /usr/bin/sed -nEf

s/^[[:alnum:][:space:]_]*[[:space:]]\**[[:alpha:]_][[:alnum:]_]*\(.*\)$/&: 0/
t func
b

:func
h
n
s/^[[:space:]]*\{$/[ Start ]/p
t loop
b

:loop
n
s/^[[:space:]]*\}$/[ End ]/
t count
x
s/(.*): 25$/\1: Too many lines (> 25)/
s/(.*): 24$/\1: 25/
s/(.*): 23$/\1: 24/
s/(.*): 22$/\1: 23/
s/(.*): 21$/\1: 22/
s/(.*): 20$/\1: 21/
s/(.*): 19$/\1: 20/
s/(.*): 18$/\1: 19/
s/(.*): 17$/\1: 18/
s/(.*): 16$/\1: 17/
s/(.*): 15$/\1: 16/
s/(.*): 14$/\1: 15/
s/(.*): 13$/\1: 14/
s/(.*): 12$/\1: 13/
s/(.*): 11$/\1: 12/
s/(.*): 10$/\1: 11/
s/(.*): 9$/\1: 10/
s/(.*): 8$/\1: 9/
s/(.*): 7$/\1: 8/
s/(.*): 6$/\1: 7/
s/(.*): 5$/\1: 6/
s/(.*): 4$/\1: 5/
s/(.*): 3$/\1: 4/
s/(.*): 2$/\1: 3/
s/(.*): 1$/\1: 2/
s/(.*): 0$/\1: 1/
x
s/^[[:space:]]*(.*)$/  \1/p
b loop

:count
g
p

Bon alors .. hem ... je sais que c'est moche, mais ca marche tongue
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

12

Zephyr
:
hibou
: C'est qui qui t'a demandé ça ? ton école ?

vui, je vais pas m'amuser à trouver des sujets à la con en sed tt seul wink
je sais pas ca pouvais être un concours ou on gagne de tunes, toussa ^^

Mais franchement, je vois pas ce qu'il y a de pédagogique la-dedans :/

13

Moi aussi, je trouve ça louche comme pratiques roll Vous portez pas plainte ?

14

Nop t'as raison on devrait, ça pourrait être un bon plan.

Hibou > c'était juste un exo bonus à la fin d'une longue série, en gros personne ne l'a fait mais j'ai gagné le droit de me le taper en ... hmm bref, c'est compliqué, mais c'était fait pour être un défi plutot qu'un exo d'apprentissage happy
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

15

tu me rassures.

16

Nan mais ils ont aussi une épreuve de Shakespeare à la fin du premier semestre d'ingé 1 cheeky
avatar

17

ca serait dur vu l'excellent niveau d'anglais de la majorite des epiteens

18

nan mais je parlais de ça !
http://shakespearelang.sourceforge.net/
avatar

19

justement ... (merci de me prendre pour un con smile)

20

Ah ok, dsl grin
avatar