remplacer tout sauf une sous chaine ? [sed] - Codes et scripts - Linux et OS Alternatifs
Marsh Posté le 01-07-2005 à 02:54:46
sed 's/.*\(<href="toto">\).*\(<href="titi">\)/\1 \2/' |
(pas testé mais je ne dois pas être loin)
Marsh Posté le 01-07-2005 à 03:05:58
semble baon (à un espace pres)
|
Marsh Posté le 01-07-2005 à 12:03:09
non ce n'est pas bon.
C'est une longue ligne. Je ne connais pas le nombre de sous chaine href =" ". Apres ca se trouve il y a href="tata" apres.
J'ai une 15aine, 20aine de sous chaine href=" ", donc je ne pense pas que l'on puisse utiliser les motifs. C'est dans une tres longue chaine de caractère que je veux chercher.
Marsh Posté le 01-07-2005 à 16:20:49
à essayer :
en 2 étapes :
on supprime tous les </ > puis tous les < > ainsi on a que le texte non balisé
echo <maligne> | sed "s/<\/.*>//g" | sed "s/<..*>//g"
ex: avec <maligne>=<a href=><b>toto</b></a>
j'obtiens toto
Ca devrait être possible en une seule passe grâce aux expressions régulières étendues mais comme je connais pas ce domaine, ma solution utilisera 2 passes.
Marsh Posté le 01-07-2005 à 01:26:53
voila je cherche comment utilisé l'inverse. Loogiquement on utilise le !
Ca serait pour remplacer plusieurs sous chaines sur une longues chaines
kjhsdfk <href="toto"> lkjqsdlkjqd <href="titi"> me renverrait <href="toto"> <href="titi">