Hallo, ich habe zwei Fragen zu sed: 1) Hat jemand einen Link zu einem guten Tutorial oder eine Buchempfehlung zur Hand? Die manpage ist meiner Meinung nach nicht so dolle... 2) Zu meinem konkreten Problem: Ich habe eine große Tabelle (leider als HTML), in der E-Mail-Adressen stehen, die ich extrahieren möchte. Ich habe nun mit einem HTML-Editor nun schon manuell die korrekte Spalte aus der Datei extrahiert und mit ein paar sed-Befehlen schon fast alles andere weggeschnitten, so daß nur noch Zeilen der folgenden Form übrig sind: "mailto:xyz@host.tld">Hans Mustermann Welcher sed-Befehl liefert mir daraus xyz@host.tld? So recht bekomme ich das nicht hin, und zum einen bin ich zu faul, das für 60 Adresse manuell zu machen, zum anderen zu stolz, weil sich das ja bestimmt auch mit einem Skript lösen läßt. ;) Danke schonmal für alle Tipps! Michael.
On Fri, Nov 12, 2004 at 06:04:06PM +0100, Michael Schachtebeck wrote:
1) Hat jemand einen Link zu einem guten Tutorial oder eine Buchempfehlung zur Hand? Die manpage ist meiner Meinung nach nicht so dolle...
Ich persönlich bin mit "sed & awk" von Arnold Robbins (oder so, hab's gerade nicht zur Hand), erschienen bei O'Reilly, sehr zufrieden.
2) Zu meinem konkreten Problem: Ich habe eine große Tabelle (leider als HTML), in der E-Mail-Adressen stehen, die ich extrahieren möchte. Ich habe nun mit einem HTML-Editor nun schon manuell die korrekte Spalte aus der Datei extrahiert und mit ein paar sed-Befehlen schon fast alles andere weggeschnitten, so daß nur noch Zeilen der folgenden Form übrig sind:
"mailto:xyz@host.tld">Hans Mustermann
Welcher sed-Befehl liefert mir daraus xyz@host.tld? So recht bekomme ich das nicht hin, und zum einen bin ich zu faul, das für 60 Adresse manuell zu machen, zum anderen zu stolz, weil sich das ja bestimmt auch mit einem Skript lösen läßt. ;)
Eine Möglichkeit ist $ sed 's/.*:\(.*\)".*/\1/' <input >output f -- Gravity is a myth, the Earth sucks.
Florian Tham schrieb am 11/12/2004 07:08 PM:
On Fri, Nov 12, 2004 at 06:04:06PM +0100, Michael Schachtebeck wrote:
1) Hat jemand einen Link zu einem guten Tutorial oder eine Buchempfehlung zur Hand?
Ich persönlich bin mit "sed & awk" von Arnold Robbins (oder so, hab's gerade nicht zur Hand), erschienen bei O'Reilly, sehr zufrieden.
Meinst Du dieses: http://www.amazon.de/exec/obidos/ASIN/3897212463/ ?
so daß nur noch Zeilen der folgenden Form übrig sind:
"mailto:xyz@host.tld">Hans Mustermann
Welcher sed-Befehl liefert mir daraus xyz@host.tld?
Eine Möglichkeit ist
$ sed 's/.*:\(.*\)".*/\1/' <input >output
Danke, werde ich auch mal probieren. MfG, Michael.
On Fri, Nov 12, 2004 at 07:16:22PM +0100, Michael Schachtebeck wrote:
Meinst Du dieses: http://www.amazon.de/exec/obidos/ASIN/3897212463/ ?
Nein, ich meinte http://www.amazon.de/exec/obidos/ASIN/1565922255/ Das "kurz & gut" Teil ist eher als Referenz, nicht als Einführung, gedacht. f -- Gravity is a myth, the Earth sucks.
Hallo, Am Fri, 12 Nov 2004, Florian Tham schrieb:
On Fri, Nov 12, 2004 at 06:04:06PM +0100, Michael Schachtebeck wrote:
1) Hat jemand einen Link zu einem guten Tutorial oder eine Buchempfehlung zur Hand? Die manpage ist meiner Meinung nach nicht so dolle...
Reicht aber. Theoretisch :)
Ich persönlich bin mit "sed & awk" von Arnold Robbins (oder so, hab's gerade nicht zur Hand), erschienen bei O'Reilly, sehr zufrieden.
Jep. Das ist gut.
2) Zu meinem konkreten Problem: Ich habe eine große Tabelle (leider als HTML), in der E-Mail-Adressen stehen, die ich extrahieren möchte. Ich habe nun mit einem HTML-Editor nun schon manuell die korrekte Spalte aus der Datei extrahiert und mit ein paar sed-Befehlen schon fast alles andere weggeschnitten, so daß nur noch Zeilen der folgenden Form übrig sind:
"mailto:xyz@host.tld">Hans Mustermann
Welcher sed-Befehl liefert mir daraus xyz@host.tld? [..] Eine Möglichkeit ist
$ sed 's/.*:\(.*\)".*/\1/' <input >output
Zu ungenau. IMO. Es sei denn die Eingabe ist 100%ig in exakt diesem Format. Ich wuerde: sed 's/.*mailto:\([^"]\+\)">.*/\1/' verwenden. Oder gleich eine Stufe vorher ansetzen: sed 's/.*.*/\1/i' -dnh -- 60: Virtual Reality AVI-Animation mit 16 Farben (Sebastian Kokemohr-Schmidt)
On Fri, Nov 12, 2004 at 08:51:39PM +0100, David Haller wrote:
Hallo,
Hallo,
Am Fri, 12 Nov 2004, Florian Tham schrieb:
$ sed 's/.*:\(.*\)".*/\1/' <input >output
Zu ungenau. IMO. Es sei denn die Eingabe ist 100%ig in exakt diesem Format. Ich wuerde:
sed 's/.*mailto:\([^"]\+\)">.*/\1/'
Ja, das ist wohl eindeutiger.
verwenden. Oder gleich eine Stufe vorher ansetzen:
sed 's/.*.*/\1/i'
... und über die ursprüngliche HTML-Datei laufen lassen. Wenn der erste Teil des Tags (a href) schon abgetrennt wurde, klappts halt nicht. f -- Gravity is a myth, the Earth sucks.
participants (3)
-
David Haller
-
Florian Tham
-
Michael Schachtebeck