Question sur SED
Résolu
linuxnico
Messages postés
204
Date d'inscription
Statut
Membre
Dernière intervention
-
linuxnico Messages postés 204 Date d'inscription Statut Membre Dernière intervention -
linuxnico Messages postés 204 Date d'inscription Statut Membre Dernière intervention -
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
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
A voir également:
- Question sur SED
- Remplacez le mot sed par le mot mais dans tout le texte. combien de caractères contient le document suite à cette modification (en incluant les espaces) ? - Guide
- Sed et ses caprices (ou les miens) ✓ - Forum Linux / Unix
- Sed crlf - Astuces et Solutions
- Sed - Remplacement texte par retour à la ligne ? ✓ - Forum Linux / Unix
- Sed supprimer ligne vide - Forum Linux / Unix
3 réponses
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
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
asevere
Messages postés
13095
Date d'inscription
Statut
Webmaster
Dernière intervention
426
héhé... :o)
Bonjour,
Essayes avec l'expression suivante:
Cordialement
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