[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: sed - frage



Hallo Andre,

On Tue, Feb 18, 2003 at 08:30:50PM +0100, Andre Fischer wrote:
> ich möchte in einer Zeile die enthaltene URL separieren. Meistens steht da 
> aber immer noch was davor und dahinter. Das davor ist ja kein problem, das 
> mach ich mit sed s/^.*http:/http:/g. aber wie lösche ich ab dem ersten "ich 
> darf nicht in einer URL enthalten sein"-Zeichen bis zum Zeilenende?

Du könntest natürlich nach allen nach RFC 2396 (Anhang A) erlaubten Zeichen
suchen. So als Schnellschuß würde ich aber eher nach Leerzeichen und
Tabulatoren Ausschau halten:

s/^.*\(http:[^ \t]\+\).*/\1/

Du mußt auch noch schauen, ob in den Zeilen nicht vielleicht 2 URLs
enthalten sind. Der g-Schalter hinter dem s/// nützt Dir in deinem Beispiel
genau so wenig wie in meinem, selbst wenn du das ^ wegläßt. Grund: greedy
match des * Metachar. Probiere es am besten mal an der Zeile

blabla http://eins/ suelz http://zwei laber

aus.

In meinem Beispiel mußt Du noch \t durch ein echtes Tab-Zeichen (unter Bash:
Ctrl-V TAB) ersetzen.

Ansonsten gibt es da vielleicht ein schönes Perl-Modul zu, welches Dir die
Arbeit abnimmt. Oder Du schaust, ob du mit den Sourcen von urlview etwas
anfangen kannst.

Gruß,
 Mike



Reply to: