[HS] remplacer une portion de texte dans un fichier
15 réponses
andre_debian
Je souhaite remplacer une portion de texte,
dans un fichier .jsp entre les expressions :
<center> ...texte =E0 supprimer...</td>
par :
<center></td>
J'ai vainement tout essay=E9 avec "preg_replace" (php) dont :
$new_string =3D preg_replace(<center>(.*)",</td>",$string);
et=20
avec "sed" :
sed '/^center.*td$/d' fichier.jsp
Je souhaite remplacer une portion de texte, dans un fichier .jsp entre les expressions : <center> ...texte à supprimer...</td> par : <center></td>
J'ai vainement tout essayé avec "preg_replace" (php) dont : $new_string = preg_replace(<center>(.*)",</td>",$string); et avec "sed" : sed '/^center.*td$/d' fichier.jsp
Merci d'une aide.
André
'soir,
l'option "d" de sed est pour supprimer une ligne. Ce serait pas plutô t qc comme
sed '/^center.*td$//g' fichier.jsp?
A ajuster, c'est juste une piste.
bye Klaus
Le Freitag 02 Oktober 2015, 21:57:27 andre_debian@numericable.fr a
écrit :
Je souhaite remplacer une portion de texte,
dans un fichier .jsp entre les expressions :
<center> ...texte à supprimer...</td>
par :
<center></td>
J'ai vainement tout essayé avec "preg_replace" (php) dont :
$new_string = preg_replace(<center>(.*)",</td>",$string);
et
avec "sed" :
sed '/^center.*td$/d' fichier.jsp
Merci d'une aide.
André
'soir,
l'option "d" de sed est pour supprimer une ligne. Ce serait pas plutô t
qc comme
Je souhaite remplacer une portion de texte, dans un fichier .jsp entre les expressions : <center> ...texte à supprimer...</td> par : <center></td>
J'ai vainement tout essayé avec "preg_replace" (php) dont : $new_string = preg_replace(<center>(.*)",</td>",$string); et avec "sed" : sed '/^center.*td$/d' fichier.jsp
Merci d'une aide.
André
'soir,
l'option "d" de sed est pour supprimer une ligne. Ce serait pas plutô t qc comme
sed '/^center.*td$//g' fichier.jsp?
A ajuster, c'est juste une piste.
bye Klaus
andre_debian
On Friday 02 October 2015 22:09:56 Klaus Becker wrote:
Le Freitag 02 Oktober 2015, 21:57:27 a écrit : > Je souhaite remplacer une portion de texte, > dans un fichier .jsp entre les expressions : > <center> ...texte à supprimer...</td> > par : > <center></td> > J'ai vainement tout essayé avec "preg_replace" (php) dont : > $new_string = preg_replace(<center>(.*)",</td>",$string); > avec "sed" : > sed '/^center.*td$/d' fichier.jsp
l'option "d" de sed est pour supprimer une ligne. Ce serait pas plutôt qc comme 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'
On Friday 02 October 2015 22:09:56 Klaus Becker wrote:
Le Freitag 02 Oktober 2015, 21:57:27 andre_debian@numericable.fr a
écrit :
> Je souhaite remplacer une portion de texte,
> dans un fichier .jsp entre les expressions :
> <center> ...texte à supprimer...</td>
> par :
> <center></td>
> J'ai vainement tout essayé avec "preg_replace" (php) dont :
> $new_string = preg_replace(<center>(.*)",</td>",$string);
> avec "sed" :
> sed '/^center.*td$/d' fichier.jsp
l'option "d" de sed est pour supprimer une ligne. Ce serait pas plutôt
qc comme
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'
On Friday 02 October 2015 22:09:56 Klaus Becker wrote:
Le Freitag 02 Oktober 2015, 21:57:27 a écrit : > Je souhaite remplacer une portion de texte, > dans un fichier .jsp entre les expressions : > <center> ...texte à supprimer...</td> > par : > <center></td> > J'ai vainement tout essayé avec "preg_replace" (php) dont : > $new_string = preg_replace(<center>(.*)",</td>",$string); > avec "sed" : > sed '/^center.*td$/d' fichier.jsp
l'option "d" de sed est pour supprimer une ligne. Ce serait pas plutôt qc comme 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'
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).
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).
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).
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 lexpression, ça évite davoir à 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 jusquau dernier).
Se procurer un bonne référence sur les expressions rationnelles pour résoudre ces problèmes.
-- Sylvain Sauvage
Le 2 oct. 2015 à 23:14, "Sylvain L. Sauvage" <Sylvain.L.Sauvage@free.fr> a écrit :
Le vendredi 2 octobre 2015, 22:23:03 andre_debian@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, linstruction sapplique à toutes les lignes :
commande args options
avec une adresse, linstruction ne sapplique quaux lignes
qui correspondent à ladresse :
adresse commande args options
avec deux adresses, linstruction ne sapplique quaux lignes
entre les deux lignes qui correspondent à ladresse :
début,fin commande args options
Une adresse est un numéro de ligne ou une expression
rationnelle.
Le principal problème avec linstruction proposée par Klaus
est quil ny 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 lexpression, ça évite davoir à 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 jusquau
dernier).
Se procurer un bonne référence sur les expressions
rationnelles pour résoudre ces problèmes.
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 lexpression, ça évite davoir à 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 jusquau dernier).
Se procurer un bonne référence sur les expressions rationnelles pour résoudre ces problèmes.
-- Sylvain Sauvage
Cyrille
Bsr,
Et $s=preg_replace("!<center>(.*)</td>!Ui","<center></td>",$s); ça ne passe pas ?
++C.
Bsr,
Et
$s=preg_replace("!<center>(.*)</td>!Ui","<center></td>",$s);
ça ne passe pas ?
Le Samstag 03 Oktober 2015, 14:54:08 François Meyer a écrit :
Bonjour, ....
je n'ai plus le mel d'origine, mais comme ça, ça devrait être compréhensible :
Je souhaite remplacer une portion de texte, dans un fichier .jsp entre les expressions : <center> ...texte à supprimer...</td> par : <center></td>
$ cat text.txt <center>texte à supprimer</td>
$ sed 's#<center>.*</td>#<center></td>#g' text.txt <center></td>
Il ne faut pas utiliser "/" comme séparateur parce qu'il fait partie du texte à traiter (</td>)
bonne soirée
Klaus
andre_debian
On Saturday 03 October 2015 19:40:43 Klaus Becker wrote:
Le Samstag 03 Oktober 2015, 14:54:08 François Meyer a écrit : je n'ai plus le mel d'origine, mais comme ça, ça devrait être compréhensible : > Je souhaite remplacer une portion de texte, > dans un fichier .jsp entre les expressions : > <center> ...texte à supprimer...</td> > par : <center></td>
$ cat text.txt <center>texte à supprimer</td>
$ sed 's#<center>.*</td>#<center></td>#g' text.txt <center></td>
Il ne faut pas utiliser "/" comme séparateur parce qu'il fait partie du texte à traiter (</td>)
Oui et merci, ceci marche bien, comme déjà répondu.
Maintenant ce sont les apostrophes " ' " qui coincent. Retirer : document.write('
J'ai essayé ça : sed "s#document.write('##g" fichier.jsp mais marche pas...
André
On Saturday 03 October 2015 19:40:43 Klaus Becker wrote:
Le Samstag 03 Oktober 2015, 14:54:08 François Meyer a écrit :
je n'ai plus le mel d'origine, mais comme ça, ça devrait être
compréhensible :
> Je souhaite remplacer une portion de texte,
> dans un fichier .jsp entre les expressions :
> <center> ...texte à supprimer...</td>
> par : <center></td>
$ cat text.txt
<center>texte à supprimer</td>
$ sed 's#<center>.*</td>#<center></td>#g' text.txt
<center></td>
Il ne faut pas utiliser "/" comme séparateur parce qu'il fait partie
du texte à traiter (</td>)
Oui et merci, ceci marche bien, comme déjà répondu.
Maintenant ce sont les apostrophes " ' " qui coincent.
Retirer : document.write('
J'ai essayé ça :
sed "s#document.write('##g" fichier.jsp
mais marche pas...
On Saturday 03 October 2015 19:40:43 Klaus Becker wrote:
Le Samstag 03 Oktober 2015, 14:54:08 François Meyer a écrit : je n'ai plus le mel d'origine, mais comme ça, ça devrait être compréhensible : > Je souhaite remplacer une portion de texte, > dans un fichier .jsp entre les expressions : > <center> ...texte à supprimer...</td> > par : <center></td>
$ cat text.txt <center>texte à supprimer</td>
$ sed 's#<center>.*</td>#<center></td>#g' text.txt <center></td>
Il ne faut pas utiliser "/" comme séparateur parce qu'il fait partie du texte à traiter (</td>)
Oui et merci, ceci marche bien, comme déjà répondu.
Maintenant ce sont les apostrophes " ' " qui coincent. Retirer : document.write('
J'ai essayé ça : sed "s#document.write('##g" fichier.jsp mais marche pas...