ubuntuusers.de

Grep Zeilen oben drueber und drunter

Status: Gelöst | Ubuntu-Version: Ubuntu 9.10 (Karmic Koala)
Antworten |

Thorus

Anmeldungsdatum:
24. Februar 2009

Beiträge: Zähle...

Hi,

Ich habe eine riesengrosse Textdatei(logfile). Moechte dort nach etwas bestimmten Suchen und dieser Begriff kommt dann nur in einem Block vor dort aber mehrmals, ich will diesen Block nun mit grep suchen lassen und 10 zeilen davor und 10zeilen nach diesem Block in eine txt datei schreiben lassen!

Den begriff mittels grep suchen zu lassen und in eine txtdatei zu schreiben ist klar:

less <logfile> | grep <Suchbegriff> ><txtdatei>

Aber wie mache ich das mit den 10zeilen darueber und darunter???

Thx for help....

oxe1976

Anmeldungsdatum:
5. Februar 2008

Beiträge: 759

grep -C 10 ...

-C fuer context.

Gruss

Thorus

(Themenstarter)

Anmeldungsdatum:
24. Februar 2009

Beiträge: Zähle...

dann bekomm ich folgende Fehlermeldung:

grep: can't open <Suchbegriff> Broken Pipe

Thorus

(Themenstarter)

Anmeldungsdatum:
24. Februar 2009

Beiträge: 164

allerdings mit einem kleinem c anstatt grossem... bei grossem kommt illegal option

Thorus

(Themenstarter)

Anmeldungsdatum:
24. Februar 2009

Beiträge: 164

Hmm... vllt liegts dadran dass ich ne andre version der bash habe?

bash --version: GNU bash, version 2.03.0(1)-release Copyright 1998 Free Software Foundation, Inc.

uname

Anmeldungsdatum:
28. März 2007

Beiträge: 6030

Wohnort: 127.0.0.1

grep -A 10 -B 10 <suchbegriff> <logfile> > <txtdatei>

user_unknown

Avatar von user_unknown

Anmeldungsdatum:
10. August 2005

Beiträge: 17622

Wohnort: Berlin

Thorus schrieb:

Hmm... vllt liegts dadran dass ich ne andre version der bash habe?

grep ist kein bash-buildin; Du müßtest wenn, dann prüfen, ob Du ein anderes grep hast.

less ist nicht geeignet eine Datei durch einen Filter in eine Datei zu schicken, es ist auch überflüssig in dem Kontext.

-c ist die count-Option für grep, -C war schon richtig.

grep -C 10 pattern logdatei > out.dat

ist richtig, und wenn es Gnu-grep ist, dann sollte es auch ein 10 Jahre altes grep tun.

Wenn man Umlenkungsoperatoren benutzt sind spitze Klammern auch nicht die beste Idee, um Variablen zu kennzeichen. ☺

Antworten |