Mit sed zwei strings pro zeile ausgeben

R

ramann

Eroberer
hi@all,

hab mal ne frage zu sed:

Folgende Zeile:

15.07.2009 09:36:44:129 ? 2 ? ? <- <p:requestId>1247637634001488306</p:requestId><p:duration>29</p:duration><p:extDuration>16</p:extDuration> ? *

Ich möchte neben "16" auch "09:36:44 ausgeben lassen".

Für "16" habe ich

cat file | sed -ne 's/.*duration>\(.*\)<\/p:duration>.*/\1/p'

aber wie erreiche ich das mit dem anderem String?


Thanks for hints
bjoern
 
Hmmm ... evtl. einfach so?
Code:
sed -ne 's/.* \(..:..:..\):.*extDuration>\([^<]*\)<.*/\1 \2/p' <file

Gruess

(NB: dein Bsp. liefert bei mir übrigens "29" ("duration"), nicht, wie angegeben, die "16" ("extDuration") ...)
 
Zuletzt bearbeitet:
sorry, meinte auch 29 :-)

Was bedeutet:

\(..:..:..\):

???
 
"\(..:..:..\):" ist einfach ein Pattern, das zwei beliebige Zeichen, einen ':', zwei Zeichen, einen ':', und noch zwei Zeichen erfasst, wenn danach nochmal ein ':' folgt; ganz primitiv also das, was das Datum aus deiner Eingabezeile rauszieht.

Gruss, A.
 

Ähnliche Themen

Mehere Strings aus unterschiedlichen Zeilen zusammenführen

Frage zu sed

HP PSC 2175 - CUPS druckt nicht

Mit sed ab einem bestimmten Zeichen den rest anzeigen

Cardreader automount?

Zurück
Oben