Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 24/11/2007, à 17:46

TheSponge

[sed] Recuperer url pour y ajouter balises

Bonjour,

Je viens de passer quelques heures à  chercher comment faire ce que je veux mais je n'y arrive pas ! C'est désespérant. J'espère que vous pourrez m'aider.

Savez-vous comment faire pour que je puisse récupérer une url qui est au milieu d'un texte et y ajouter, de chaque cà´té, une balise, sans modifier le texte bien sûr ?

Ex :
Bonjour, je suis Bob. Mon site http://site.de.bob.fr est vraiment fantastique !

Doit devenir :
Bonjour, je suis Bob. Mon site <lien>http://site.de.bob.fr</lien> est vraiment fantastique !

Est-ce qu'une personne peut m'aider à  faire ça ? J'ai pensé à  sed mais s'il y a autre chose plus adapté n'hésitez pas à  m'en informer smile

Merci,

Nicolas

#2 Le 24/11/2007, à 19:09

TheSponge

Re : [sed] Recuperer url pour y ajouter balises

AHHHHHHH !!!! yikes Quel boulet je fait !

Il faut utiliser & qui correspond à la chaîne qui est matché, dans son ensemble, et non pas \1 , etc qui ne représente qu'une partie. Cela pourra peut-être servir à d'autres étourdis wink

#3 Le 24/11/2007, à 19:19

BlaireauOne

Re : [sed] Recuperer url pour y ajouter balises

sed 's#\(http:[^ ]\+\)#<lien>\1</lien>#' texte.txt

Bonjour, je suis Bob. Mon site <lien>http://site.de.bob.fr</lien> est vraiment fantastique !

Explication :
http://www.shellunix.com/regexp.html

Remplace toute chaà®ne de caractères http: suivie de 1 à  n caractères différents de 'blanc' par cette "regexp" entourée de <lien> et </lien>
Nota : pour plus de lisiblité, les "/" sont remplacés par le "#" smile

Hors ligne

#4 Le 24/11/2007, à 20:01

TheSponge

Re : [sed] Recuperer url pour y ajouter balises

Ah oui effectivement, c'est plus simple que ce que j'ai fait !

Et pour complexifier les choses, si j'ai un texte du style :
Un site génial ! Ubuntu.fr->http://www.ubuntu-fr.org

Tu sais quoi faire pour arriver à  ça ?
Un site génial ! <a href=http://www.ubuntu-fr.org>Ubuntu.fr</a>

Que le nom du lien soit Ubuntu.fr ou Ubuntu.fr-> je m'en moque si ça peut être plus simple.

J'étais bien content d'avoir si bien progressé mais là  je rebloque à  nouveau ! Grrrrr

Tu peux m'aider à  nouveau ou pas ?

#5 Le 24/11/2007, à 20:25

BlaireauOne

Re : [sed] Recuperer url pour y ajouter balises

Fonctionne pour chaà®ne de type :

blabla ...............->.....http:........................


sed -s 's#\([^ ]\+\)->.*\(http:[^ ,]\+\)#<a href=\2>\1</a>#' liste.txt

Un site génial ! <a href=http://www.ubuntu-fr.org>Ubuntu.fr</a>

Hors ligne

#6 Le 24/11/2007, à 20:37

TheSponge

Re : [sed] Recuperer url pour y ajouter balises

Whaou ! Les Dieux du sed sont descendu sur Terre ! (comprenne qui pourra... tongue)

C'est exactement ce qu'il me fallait ! Merci beaucoup.

J'ai perdu trop d'heures sur ça aujourd'hui, merci de ne pas m'avoir laissé sombrer dans le désespoir.

Mon héraut !

#7 Le 24/11/2007, à 20:58

Alain.g

Re : [sed] Recuperer url pour y ajouter balises

attention, .* est gourmand, s'il y a plusieurs URL sur la même ligne, c'est le dernier qu'il prendra. On peut éventuellement remplacer le "." par \s

Sinon pour avoir des quantificateurs non-gourmands, on peut utiliser ssed (super sed) ou directement perl. Le changement se fait en ajoutant un point d'interrogation.

Dernière modification par Alain.g (Le 24/11/2007, à 21:23)


Xubuntu Karmic !

Hors ligne

#8 Le 24/11/2007, à 22:22

TheSponge

Re : [sed] Recuperer url pour y ajouter balises

Argh, misère. J'ai tout qui fonctionne bien sauf cas particuliers.

J'utilise le texte qui m'est redonné pour le mettre dans des requêtes SQL et par moment j'ai quelque chose de la forme :

'>Texte</a>,

alors que pour que ça fonctionne ça doit être de la forme

>Texte</a>',

Si le texte était identique à chaque fois, j'aurai facilement trouvé, mais ce n'est bien évidement pas aussi simple. Je bloque donc sur 2 points, trouver la bonne expression régulière pour le trouver, et ensuite décaler le ' au bon endroit.

Ça ne paraît pas mais c'est super complexe à faire. Mon cerveau à pris mal aujourd'hui sad

J'espère que ce dernier exemple me permettra de comprendre comment ça fonctionne. Il n'y a pas beaucoup de sites qui expliquent comment combiner les éléments de base.

Merci du temps que vous avez passé à m'aider, c'est très gentil à vous.

#9 Le 25/11/2007, à 17:59

TheSponge

Re : [sed] Recuperer url pour y ajouter balises

Whaou ça y est j'ai presque fini ! Tout fonctionne sauf que certains liens contiennent des , alors ça coince. Je vais voir si je trouve comment faire smile