2010-11-24 17 views
0

Wie kann ich Links aus dem Text entfernen? Ich denke, dass ich den sed-Befehl verwenden sollte, aber ich kenne keine genaue Syntax. Links aus dem Text entfernen

+0

Sie sollten ein Beispiel zeigen, was Sie haben und was Sie wollen. Meinst du HTML-Links? Was möchten Sie mit dem Rest des HTML in der Datei tun? Sie sollten eine Perl- oder Python-Lib oder ein anderes Tool verwenden, das auf die Bearbeitung von HTML spezialisiert ist. Reguläre Ausdrücke sind [nicht ausreichend] (http://stackoverflow.com/q/1732348/26428#1732454). –

+0

mögliche Duplikate von [Links finden und aus HTML entfernen] (http://stackoverflow.com/questions/1784507/find-links-and-remove-them-from-html) –

+0

Mein Text sieht so aus: lallalalala http: //blabla.com babababab http://hehehe.org. – llokely

Antwort

0

Dies wird alles in .com oder .org Endung entfernen:

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

Eingang:

lallalalala blabla.com babababab hehehe.org. 

Ausgang:

lallalalala babababab. 

EDIT: Hier ist es in POSIX-Standard. Ich habe auch ein paar mehr Zeichen Fällen entsprechen, wo es Sub-Domains oder Protokolle können (http://)

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

Beachten Sie auch, dass dies nicht alle möglichen URL Zeichen oder URLs nicht abdeckt, die eine Ressource nach dem Domain-Suffix Referenz (example.com/query?foo=bar).

+0

Hinweis, dies entfernt auch ein Leerzeichen vor der URL, wenn es existiert. Wenn dies nicht gewünscht ist, entfernen Sie den '\ s \?' Teil. –

+0

Er nimmt auch GNU sed an - nicht unbedingt ungültig, sollte aber so dokumentiert werden, dass er eine nicht standardmäßige Erweiterung verwendet. –

+0

bearbeitet, um POSIX nur Version einzuschließen –