2010-11-24 8 views
0

Comment supprimer des liens d'un texte? Je pense que je devrais utiliser sed commande mais je ne connais pas la syntaxe exacte.Supprimer les liens du texte

+0

Vous devriez montrer un exemple de ce que vous avez et de ce que vous voulez. Voulez-vous dire des liens HTML? Que voulez-vous faire avec le reste du code HTML dans le fichier? Vous devez utiliser une bibliothèque Perl ou Python ou un autre outil spécialisé pour la manipulation de HTML. Les expressions régulières sont [insuffisantes] (http://stackoverflow.com/q/1732348/26428#1732454). –

+0

duplication possible de [Trouver des liens et les supprimer du HTML] (http://stackoverflow.com/questions/1784507/find-links-and-remove-them-from-html) –

+0

Mon texte ressemble à ceci: lallalalala http: //blabla.com babababab http://hehehe.org. – llokely

Répondre

0

Cela permettra d'éliminer tout se terminant en .com ou .org:

sed 's/\s\?\w\+\.\(com\|org\)//g' foo.txt 

entrée:

lallalalala blabla.com babababab hehehe.org. 

sortie:

lallalalala babababab. 

EDIT: ici il est dans la norme POSIX. J'ai aussi ajouté quelques caractères pour correspondre à des cas où il peut y avoir des sous-domaines ou protocoles (http://)

sed 's/[[:space:]]\?[A-Za-z0-9_\/\:\.-]\+\.\(com\|org\)//g' foo.txt 

Notez également que cela ne couvre pas tous les caractères possibles d'URL ou URL qui font référence à une ressource après le suffixe de domaine (example.com/query?foo=bar).

+0

Notez que cela supprime également un espace avant le url si elle existe. Si cela n'est pas souhaité, supprimez la partie '\ s \?' –

+0

Il suppose également GNU sed - pas nécessairement invalide, mais devrait être documenté comme utilisant une extension non-standard. –

+0

modifié pour inclure la version POSIX uniquement –

Questions connexes