Hallo Lug!
Ich stehe grad etwas auf dem Schlauch. Ich habe ein Logfile, aus dem ich einen bestimmten Abschnitt extrahieren möchte.
grep "start_token[.^$]*end_token" logfile.txt
klappt leider nicht, da grep am Zeilenende aufhört. Von sed und awk [1] habe ich leider keine Ahnung.
Hat von Euch jemand einen Tipp, um das Problem schnell mit Unix-Bordmitteln zu lösen?
Grüße Bert
[1] http://aurelio.net/sed/img/grep-awk-sed.gif ___________________________________________________________ Empfehlen Sie WEB.DE DSL Ihren Freunden und Bekannten und wir belohnen Sie mit bis zu 50,- Euro! https://freundschaftswerbung.web.de
Hallo Bert,
Am 10.01.2011 11:40, schrieb Bert Lange:
Ich stehe grad etwas auf dem Schlauch. Ich habe ein Logfile, aus dem ich einen bestimmten Abschnitt extrahieren möchte.
grep "start_token[.^$]*end_token" logfile.txt
klappt leider nicht, da grep am Zeilenende aufhört.
GNU grep beherrscht mit dem Schalter -P auch Perl-Regex und damit geht auch mehrzeilig. Reicht das schon als Tipp?
Viele Grüße, Torsten
Hallo Torsten,
GNU grep beherrscht mit dem Schalter -P auch Perl-Regex und damit geht auch mehrzeilig. Reicht das schon als Tipp?
Leider nicht.
-P wird zwar von meinem System unterstützt (cygwin), aber ich kann keinen modifier (in dem Fall müsste das //s sein) mit angeben.
Bert ___________________________________________________________ WEB.DE DSL Doppel-Flat ab 19,99 €/mtl.! Jetzt mit gratis Handy-Flat! http://produkte.web.de/go/DSL_Doppel_Flatrate/2
Am 10.01.2011 13:31, schrieb Bert Lange:
-P wird zwar von meinem System unterstützt (cygwin), aber ich kann keinen modifier (in dem Fall müsste das //s sein) mit angeben.
Okay, dann war der Tipp zu knapp. Mach mal 'man perlre' und suche dort nach 'Extended Patterns'.
(?s)
innerhalb des Regexp schaltet den modifier /s an.
Viele Grüße, Torsten
Hej!
Ich stehe grad etwas auf dem Schlauch. Ich habe ein Logfile, aus dem ich einen bestimmten Abschnitt extrahieren möchte.
grep "start_token[.^$]*end_token" logfile.txt
start=grep -n start_token logfile.txt end=grep -n end_token logfile.txt start=${start/://} end=${end/://} grep -A $((end-start)) start_token logfile.txt
Ungetestet.
Grüße Fabian
Hallo Bert,
On Mon, Jan 10, 2011 at 11:40:39 +0100, Bert Lange wrote:
Ich stehe grad etwas auf dem Schlauch. Ich habe ein Logfile, aus dem ich einen bestimmten Abschnitt extrahieren moechte.
grep "start_token[.^$]*end_token" logfile.txt
Mit sed kann man Zeilenbereiche von pattern1 bis pattern2 selektieren:
sed -n '/pattern1/,/pattern2/p' file.txt
Gruss, Chris
Dank an Christian und auch an alle anderen!
Mit sed kann man Zeilenbereiche von pattern1 bis pattern2 selektieren:
sed -n '/pattern1/,/pattern2/p' file.txt
Die Lösung von Fabian ließ sich leider nicht so einfach auf's Makefile übertragen.
Grüße Bert ___________________________________________________________ NEU: FreePhone - kostenlos mobil telefonieren und surfen! Jetzt informieren: http://produkte.web.de/go/webdefreephone
Bert Lange Bert.Lange@web.de (Mo 10 Jan 2011 13:44:20 CET):
Dank an Christian und auch an alle anderen!
Mit sed kann man Zeilenbereiche von pattern1 bis pattern2 selektieren:
sed -n '/pattern1/,/pattern2/p' file.txt
Die Lösung von Fabian ließ sich leider nicht so einfach auf's Makefile übertragen.
Warum? Hast Du das etwas genauer?
Bert Lange Bert.Lange@web.de (Mo 10 Jan 2011 11:40:39 CET):
Hallo Lug!
Ich stehe grad etwas auf dem Schlauch. Ich habe ein Logfile, aus dem ich einen bestimmten Abschnitt extrahieren möchte.
grep "start_token[.^$]*end_token" logfile.txt
klappt leider nicht, da grep am Zeilenende aufhört. Von sed und awk [1] habe ich leider keine Ahnung.
Hat von Euch jemand einen Tipp, um das Problem schnell mit Unix-Bordmitteln zu lösen?
perl -ne '/start/../end/ and print' logfile.txt
Mit sed und awk geht das sicher auch.
lug-dd@mailman.schlittermann.de