Re: [HS] Script : manque de pratique
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
Reply to: