C'est vrai qu'il y a le petit "z", je l'avais oublié celui-là (Merci
).
D'ailleurs, je vois aussi que j'aurai pu l'écrire en plus court en inversant les parenthèses:
sed -n '/^\(classe\)* *$/d;/classe/!{H;b;};p;x;s/.//p;s/.*//;x'
et avec le "z":
sed -n '/^\(classe\)* *$/d;/classe/!{H;b;};p;x;s/.//p;z;x'
Pour les puristes, la première '*' de la première regex peut-être remplacée par '\?' car le but ici est de trouver au plus une fois le mot classe en début de ligne et/ou éventuellement des espaces.
PS: la solution en awk est presque aussi courte
Partager