nntp2http.com
Posting
Suche
Optionen
Hilfe & Kontakt

Regulärer Ausdruck mit grep

Von: Jan Kolarik (kormoran@justmail.de) [Profil]
Datum: 13.05.2010 22:06
Message-ID: <a8b80$4bec5be1$506cf0d7$25960@news.chello.at>
Followup-to: de.comp.os.unix.linux.misc
Newsgroup: de.comp.os.unix.linux.misc at.linux
Hallo,

ich habe hier ein HTML-File aus dem ich gerne alle Zeilen ohne irgendwelche
HTML-Tags extrahieren möchte, der Einfachheit halber alle Zeilen ohne das
Zeichen "<".

Wieso funktioniert folgendes nicht? (jetz unabhängig davon wie man HTML-Tags
sonst noch extrahieren könnte):

grep "[^<]" datei

während folgender Ausdruck durchaus die komplementäre Zeilenmenge (also
alles _mit_ dem Zeichen "<") ausspuckt:

grep "[<]" datei

... und auch mit Hilfe der Option "-v" funktionierts wie erwartet.

Laut Manual sehe ich nur für "\<" eine spezielle Bedeutung: "the 
empty
string at the beginning and end of a word", das sollte aber in meinem Fall
ja nicht zutreffen.

Alles nachzuprüfen zB wie folgt:

% cat datei
aaa <tag> bbb
Zeile ohne tag

% grep "[<]" datei
aaa <tag> bbb

% grep "[^<]" datei
aaa <tag> bbb           <-- sollte nicht sein
Zeile ohne tag

% grep '[^<]' datei
aaa <tag> bbb           <-- sollte nicht sein
Zeile ohne tag

% grep "[^\<]" datei
aaa <tag> bbb
Zeile ohne tag

% grep -v '[<]' datei
Zeile ohne tag

Ich vermute ja nur eine Kleinigkeit die ich übersehen habe. Kann mir jemand
auf die Sprünge helfen?



[ Auf dieses Posting antworten ]

Antworten