[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
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é
J'ai essayé :
$ cat texte.txt document.write('
$ sed "s/document.write('//g" texte.txt affiche une ligne vide, donc ça marche
Klaus
Le Samstag 03 Oktober 2015, 20:46:38 andre_debian@numericable.fr a
écrit :
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é
J'ai essayé :
$ cat texte.txt
document.write('
$ sed "s/document.write('//g" texte.txt
affiche une ligne vide, donc ça marche
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é
J'ai essayé :
$ cat texte.txt document.write('
$ sed "s/document.write('//g" texte.txt affiche une ligne vide, donc ça marche
Klaus
andre_debian
On Saturday 03 October 2015 21:03:37 Klaus Becker wrote:
Le Samstag 03 Oktober 2015, 20:46:38 > > > Je souhaite remplacer une portion de texte, > Maintenant ce sont les apostrophes " ' " qui coincent. > Retirer : document.write('
> J'ai essayé ça : > sed "s#document.write('##g" fichier.jsp > mais marche pas...
J'ai essayé : $ cat texte.txt document.write(' $ sed "s/document.write('//g" texte.txt affiche une ligne vide, donc ça marche. Klaus
Il m'a fallu ajouter ceci : sed "s/document.write('//g" fichier.jsp
Et c'est tout bon. Vielen Dank.
Enfin : sed -i "s/événement/Événement/g" fichier.jsp donne : "éééÉnement"
Étrange, c'est le + simple et ça déconne...
André
On Saturday 03 October 2015 21:03:37 Klaus Becker wrote:
Le Samstag 03 Oktober 2015, 20:46:38 andre_debian@numericable.fr
> > > Je souhaite remplacer une portion de texte,
> Maintenant ce sont les apostrophes " ' " qui coincent.
> Retirer : document.write('
> J'ai essayé ça :
> sed "s#document.write('##g" fichier.jsp
> mais marche pas...
J'ai essayé :
$ cat texte.txt
document.write('
$ sed "s/document.write('//g" texte.txt
affiche une ligne vide, donc ça marche.
Klaus
Il m'a fallu ajouter ceci :
sed "s/document.write(\'//g" fichier.jsp
Et c'est tout bon. Vielen Dank.
Enfin :
sed -i "s/événement/Événement/g" fichier.jsp
donne :
"éééÉnement"
On Saturday 03 October 2015 21:03:37 Klaus Becker wrote:
Le Samstag 03 Oktober 2015, 20:46:38 > > > Je souhaite remplacer une portion de texte, > Maintenant ce sont les apostrophes " ' " qui coincent. > Retirer : document.write('
> J'ai essayé ça : > sed "s#document.write('##g" fichier.jsp > mais marche pas...
J'ai essayé : $ cat texte.txt document.write(' $ sed "s/document.write('//g" texte.txt affiche une ligne vide, donc ça marche. Klaus
Il m'a fallu ajouter ceci : sed "s/document.write('//g" fichier.jsp
Et c'est tout bon. Vielen Dank.
Enfin : sed -i "s/événement/Événement/g" fichier.jsp donne : "éééÉnement"
Étrange, c'est le + simple et ça déconne...
André
Alexandre Hoïde
On Sat, Oct 03, 2015 at 11:17:12PM +0200, wrote:
sed -i "s/événement/Événement/g" fichier.jsp donne : "éééÉnement"
Étrange, c'est le + simple et ça déconne...
Dans la partie « remplacer par » de la substitution, le '&' (pour Sed) est une référence à la portion correspondante du motif de recherche. Pour un '&' litéral il faut une protection '&' (euh, peut-être doubler le '' pour le bash avec tes guillemets doubles, j'ai un doute).
On Sat, Oct 03, 2015 at 11:17:12PM +0200, andre_debian@numericable.fr wrote:
sed -i "s/événement/Événement/g" fichier.jsp
donne :
"éééÉnement"
Étrange, c'est le + simple et ça déconne...
Dans la partie « remplacer par » de la substitution, le '&' (pour Sed)
est une référence à la portion correspondante du motif de recherche.
Pour un '&' litéral il faut une protection '&' (euh, peut-être doubler
le '' pour le bash avec tes guillemets doubles, j'ai un doute).
sed -i "s/événement/Événement/g" fichier.jsp donne : "éééÉnement"
Étrange, c'est le + simple et ça déconne...
Dans la partie « remplacer par » de la substitution, le '&' (pour Sed) est une référence à la portion correspondante du motif de recherche. Pour un '&' litéral il faut une protection '&' (euh, peut-être doubler le '' pour le bash avec tes guillemets doubles, j'ai un doute).
Le Sat, Oct 03, 2015 at 11:17:12PM +0200, a écrit :
Enfin : sed -i "s/événement/Événement/g" fichier.jsp donne : "éééÉnement"
Étrange, c'est le + simple et ça déconne...
Bonjour,
désolé du HS dans le HS, mais c'est irrésistible:
Cette discussion me rappelle la meilleure réponse de tous les temps sur StackOverflow, à la question de quelqu'un voulant parser du XHTML avec des expressions rationelles.
PS: ceci dit, j'en convient que lorsque j'ai moi-même tenté d'utiliser un outil dédié (xmlstarlet), il m'a fallu me taper la tête contre les murs pendant des heures avant d'arriver à un résultat.
-- Charles Plessy Tsurumi, Kanagawa, Japon
Le Sat, Oct 03, 2015 at 11:17:12PM +0200, andre_debian@numericable.fr a écrit :
Enfin :
sed -i "s/événement/Événement/g" fichier.jsp
donne :
"éééÉnement"
Étrange, c'est le + simple et ça déconne...
Bonjour,
désolé du HS dans le HS, mais c'est irrésistible:
Cette discussion me rappelle la meilleure réponse de tous les temps sur
StackOverflow, à la question de quelqu'un voulant parser du XHTML avec des
expressions rationelles.
PS: ceci dit, j'en convient que lorsque j'ai moi-même tenté d'utiliser un outil
dédié (xmlstarlet), il m'a fallu me taper la tête contre les murs pendant des
heures avant d'arriver à un résultat.
Le Sat, Oct 03, 2015 at 11:17:12PM +0200, a écrit :
Enfin : sed -i "s/événement/Événement/g" fichier.jsp donne : "éééÉnement"
Étrange, c'est le + simple et ça déconne...
Bonjour,
désolé du HS dans le HS, mais c'est irrésistible:
Cette discussion me rappelle la meilleure réponse de tous les temps sur StackOverflow, à la question de quelqu'un voulant parser du XHTML avec des expressions rationelles.
PS: ceci dit, j'en convient que lorsque j'ai moi-même tenté d'utiliser un outil dédié (xmlstarlet), il m'a fallu me taper la tête contre les murs pendant des heures avant d'arriver à un résultat.
-- Charles Plessy Tsurumi, Kanagawa, Japon
Alexandre Hoïde
On Sat, Oct 03, 2015 at 11:54:26PM +0200, Alexandre Hoïde wrote:
Dans la partie « remplacer par » de la substitution, le '&' (pour Sed) est une référence à la portion correspondante du motif de recherche.
Je me suis mal exprimé. Dans la partie « remplacer par », Sed interprète le '&' comme une référence à la portion du texte qui correspond au motif de recherche, dans l'espace courant.
Et puisque j'en suis à pinailler : dans l'expression rationnelle du « document.write », le point littéral devrait être protégé aussi. Je sais que tu le sais, mais je sais aussi que tu sais qu'on l'oublie facilement, hein ?!
On Sat, Oct 03, 2015 at 11:54:26PM +0200, Alexandre Hoïde wrote:
Dans la partie « remplacer par » de la substitution, le '&' (pour Sed)
est une référence à la portion correspondante du motif de recherche.
Je me suis mal exprimé. Dans la partie « remplacer par », Sed
interprète le '&' comme une référence à la portion du texte qui
correspond au motif de recherche, dans l'espace courant.
Et puisque j'en suis à pinailler : dans l'expression rationnelle du
« document.write », le point littéral devrait être protégé aussi. Je
sais que tu le sais, mais je sais aussi que tu sais qu'on l'oublie
facilement, hein ?!
On Sat, Oct 03, 2015 at 11:54:26PM +0200, Alexandre Hoïde wrote:
Dans la partie « remplacer par » de la substitution, le '&' (pour Sed) est une référence à la portion correspondante du motif de recherche.
Je me suis mal exprimé. Dans la partie « remplacer par », Sed interprète le '&' comme une référence à la portion du texte qui correspond au motif de recherche, dans l'espace courant.
Et puisque j'en suis à pinailler : dans l'expression rationnelle du « document.write », le point littéral devrait être protégé aussi. Je sais que tu le sais, mais je sais aussi que tu sais qu'on l'oublie facilement, hein ?!