Le 2 oct. 2015 à 23:14, "Sylvain L. Sauvage" <sylvain.l.sauv...@free.fr> a écrit :
> Le vendredi 2 octobre 2015, 22:23:03 andre_deb...@numericable.fr > a écrit : >> […] >>> sed '/^center.*td$//g' fichier.jsp? >>> >>> A ajuster, c'est juste une piste. >> >> J'ai tenté tout ça, mais en vain... >> Réponse permanente : >> sed: impossible de trouver l'étiquette pour sauter à >> `d>/</td>/g' > > Lire la page de man de sed, elle est courte. > > Une instruction sed a trois formes possibles : > — sans adresse, l’instruction s’applique à toutes les lignes : > commande args options > > — avec une adresse, l’instruction ne s’applique qu’aux lignes > qui correspondent à l’adresse : > adresse commande args options > > — avec deux adresses, l’instruction ne s’applique qu’aux lignes > entre les deux lignes qui correspondent à l’adresse : > début,fin commande args options > > Une adresse est un numéro de ligne ou une expression > rationnelle. > > Le principal problème avec l’instruction proposée par Klaus > est qu’il n’y a pas de commande. C'est un peu le même problème avec preg_replace : http://php.net/manual/fr/function.preg-replace.php > > La commande souhaitée est la substitution, 's'. Elle prend 0, > 1 ou 2 adresses. > > Donc : sed -e 's:<center>.*</td>:<center></td>:' > (':' sert ici de séparateur pour les arguments de 's', '/' > faisant partie de l’expression, ça évite d’avoir à le protéger.) > > Problèmes. Ça ne fera pas ce que tu veux si : > 1. il y a des sauts de ligne entre <center> et </td> ; > 2. il y a plusieurs </td> sur la même ligne (.* prend jusqu’au > dernier). > > Se procurer un bonne référence sur les expressions > rationnelles pour résoudre ces problèmes. > > -- > Sylvain Sauvage >