Michel Grentzinger a écrit, vendredi 23 mai 2008, à 16:15 :
> Le jeudi 22 mai 2008, Jacques L'helgoualc'h a écrit :
[...]
> >  <noms.txt sed -e '=' | \
> >  sed -e '1~2{s,^,s/NOM,;N;s,\n,/,;s,$,/g,}' > noms.sed
> >
> > # puis l'utiliser
> >
> >  sed -f noms.sed proto.php > resultat.php
> >
> > Il y a peut-être plus lisible...
> 
> Merci infiniment de ton aide mais je n'ai rien compris à ton script sed ! ;-)

Oui, sed n'est pas très facile à (re)lire :/ --- mais il *peut* le faire.

> Je crois qu'en tapant les noms à la main j'irai plus vite ...

Ben, tu dois les taper une seule fois avec l'éditeur de ton choix

 $ cat <<FIN >noms.txt
> ]bidule
> ]chose
> ]machin
> ]truc
> ]FIN

Ensuite, le premier sed numérote les lignes,

 $ sed -e '=' <noms.txt 
1
bidule
2
chose
3
machin
4
truc

le deuxième fusionne les lignes  impaires (numéro) et paires (nom), pour
en faire le script de substitution

 $ sed -e '=' <noms.txt | sed -e '1~2{s,^,s/NOM,;N;s,\n,/,;s,$,/g,}'
s/NOM1/bidule/g
s/NOM2/chose/g
s/NOM3/machin/g
s/NOM4/truc/g


1~2{ # sur une ligne impaire
s,^,s/NOM, # ajoute « s/NOM » devant le numéro
N # accole la ligne suivante après un \n
s,\n,/, # remplace ce séparateur par celui de la substitution
s,$,/g, # et termine celle-ci avec l'option.
}

Avec Awk ou Perl on peut faire plus clair (encore que ...).
-- 
Jacques L'helgoualc'h

-- 
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/DebFrFrenchLists
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Répondre à