Mailinglist Archive: opensuse-de (1041 mails)

< Previous Next >
Re: sed-Frage
  • From: Christian Brabandt <cblists@xxxxxxxxxx>
  • Date: Tue, 4 Nov 2008 12:06:57 +0100
  • Message-id: <20081104110657.GC24825@xxxxxxxxxx>
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@xxxxxxxxxxxx
Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken
Sie eine Mail an: opensuse-de+help@xxxxxxxxxxxx

< Previous Next >