Forum Clubic

Unix -Expression reguliere remplacement de chaine

Bonjour à tous,
J’ai un fichier contenant plusieurs URL de ce type, une URL par ligne:

http://www.monadresse.net/">MonAdresse</a></li>

Je veux supprimer tout ce qui se trouve entre les caractères suivants, cad:
/">

et

Mais je ne sais pas quelle commande taper (sed, grep ou je sais plus, j’ai regarder le man, mais je suis perdu :slight_smile: )

Merci à tous.
Edité le 23/02/2009 à 10:04

J’ai pas trop compris ce que tu voulais réelement, et l’exemple que tu donnes à l’air un peu … bizarre, avec des balises ouvert et pas fermé, et des fermé et pas ouverte :o

Salut,
J’ai corrigé mon message car j’ai voulu mettre du bbcode, et du bbcode c’est inclus sans que je le demande, ce qui à rendu mon message quelque peu incompréhensible :).
Oui, je veux supprimer les balises de fermetures (j’ai réussi à supprimer les ouvrantes)

Bref, voilà j’espère que tu y verras plus clair.

si tu veux remplacer monadresse par textedesubsitution
sed -inre ‘s@>.*</a@>textedesubstitution</a@g’ monfichier.txt

les options inre
i = insérer la modif directement dans le fichier
n = mode silencieux
r = expressions régulières étendues
e = exécuter tout ce qui est entre apostrophes

‘on substitue(s) @ tout ce qui commence par > suivit d’un nombre quelconque de caractères (.*) et terminé par </a @ par > suivi du texte de remplacement finit par </a @ dans tout le fichier’ le nom du fichier

@ est un délimiteur d’expression. Tu peux remplacer par d’autres caractères comme ! ou autres dans certaines limites. L’avantage ici d’utiliser @ par rapport au caractère / est qu’on peut ne pas "protéger’ le caractère / qui se trouve dans ton expression régulière. ça rend les choses un tout petit peu plus lisible

Dites moi si je me trompe dans mon explication :whistle:
Edité le 24/02/2009 à 03:08