Hi, ich fowarde mal wieder auf die Opensuse-Liste. (sorry für die PM, da war ich wieder zu schnell ;)) Hallo Joerg! Joerg Thuemmler schrieb am Dienstag, den 04. November 2008:
Christian Brabandt wrote:
Hi Andre!
On Tue, 04 Nov 2008, Andre Tann wrote:
Christian Brabandt, Dienstag, 4. November 2008 10:58:
sed -n '/<tr>/,/<\/tr>/p'
| | ^ print | /Pattern/ beschreibt die Ende-Adresse /Pattern/ beschreibt die Anfang Adresse
Oops, ziemlich kurz... Es funktioniert auch nicht bei mir, es kommt gar kein Output raus. Könntest Du bitte den Gedankengang kurz erklären?
Alle Zeilen, die durch <tr> und </tr> gematcht werden sollen ausgegeben werden. Das -n sorgr dafür, dass nur dann was ausgegeben wird, wenn man explizit durch das print Kommando verlangt.
In deinem Beispiel hattest Du erwähnt, du wolltest alles zwischen <tr> ausgeben. Da ich von html ausging, hab ich das Pattern mal auf <tr> </tr> erweitert. Falls das falsch war, lass das \/ im Ende Pattern weg.
ich glaube, das Problem ist, daß sed zeilenweise arbeitet, eine Zeile mal ein <tr> enthält, das </tr> aber eine viel weiter hinten. Müßte man irgendwie mit Zeilenbereichen machen... hab mich nie so genau mit sed beschäftigt.
Nein, das hat damit nichts zu tun. Sed Regionen sind nicht greedy. D.h. wenn mehrere Regionen zutreffen werden auch alle verarbeitet. Ergibt sich auch aus dem Namen *Stream* Editor.
Ich würde faulerweise wohl mit grep die Zeilennummern zwischen den <tr> und </tr> ermitteln und über head / tail ausschneiden, ggf. mit sed Dinge vor <tr> und nach </tr> schneiden, wenn auf diesen Zeilen noch was stehen kann.
Örgs. Mit freundlichen Grüßen Christian -- hundred-and-one symptoms of being an internet addict: 1. You actually wore a blue ribbon to protest the Communications Decency Act. -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
participants (1)
-
Christian Brabandt