Question sur SED

Résolu/Fermé
linuxnico Messages postés 204 Date d'inscription vendredi 1 février 2008 Statut Membre Dernière intervention 8 octobre 2010 - 29 août 2008 à 15:40
linuxnico Messages postés 204 Date d'inscription vendredi 1 février 2008 Statut Membre Dernière intervention 8 octobre 2010 - 1 sept. 2008 à 08:00
Bonjour,


je suis en cours de creation d'un script et j'ai un soucis avec SED

je fait

sed 's/AAA/BBB/g' mon fichier.html

mais voila, AAA=href='"XXXXXXX"' et BBB='href="XXXXXX?test"'

or je n'arrive pas a conserver le XXXXXX (qui peux etre aleatoire)

je suis pas du tout un dieu du script, je tiens a le preciser.

ps: pour etre plus simple comment dans un fichier html, rajouter un texte derriere le texte contenu dans un HREF?

merci

3 réponses

jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
29 août 2008 à 16:50
Salut,

Il suffit de changer le délimiteur par défaut de sed qui est le slash (/) par un caractère non présent dans la chaîne de caractère à remplacer ou de substitution...

Voir SED - Les délimiteurs
0
asevere Messages postés 13084 Date d'inscription lundi 28 janvier 2002 Statut Webmaster Dernière intervention 3 février 2022 426
29 août 2008 à 16:54
héhé... :o)
0
asevere Messages postés 13084 Date d'inscription lundi 28 janvier 2002 Statut Webmaster Dernière intervention 3 février 2022 426
29 août 2008 à 16:52
Bonjour,

Essayes avec l'expression suivante:
sed -r 's/href="([^"]*)"/href="\1\?test"/g'
Les parenthèses permettent de capturer un contenu pour le réutiliser ensuite avec \1 (\1 première paire, \2 deuxième paire, etc.) 

[^"]* permet de ne capturer que le minimum dans ce cas (le mode ungreedy n'est pas présent dans sed) ce n'est util que si une ligne peut contenir plus d'un lien...

En gros ça te permet de matcher:
href="abc" href="def"
au lieu de 
href="abc" href="def"

Exemple:
sed -r 's/href="([^"]*)"/href="\1\?test"/g' << EOF
href="abc" href="def"
EOF

href="abc?test" href="def?test"


Cordialement
0
linuxnico Messages postés 204 Date d'inscription vendredi 1 février 2008 Statut Membre Dernière intervention 8 octobre 2010 10
1 sept. 2008 à 08:00
super ca marche nickel!!!!!

Vous etes de vrai betes!!!

Merci
0