• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

grep-parameter

Hi,

Wie schaffe ich es, dass Grep mir aus einer Datei gewisse Informationen übersichtlich ausgibt?
Die Datei wurde bei einem imapsync erzeugt und erhält tausende von Zeilen, die ich gerne raushaben möchte.
ich habe versucht, mit -A 5 und einem Ausdruck die Statistics + 5 Zeilen anzeigen zu lassen bzw in eine weitere Datei pipen. Man sieht hierbei leider keinen Benutzernamen, der innerhalb des Textes wesentlich weiter oben steht.
mit -v hab ich versucht, die ganzen Infos über synchronisierte Mails wegzulassen und den Rest stehen zulassen, funktionierte nicht mit dem Parameter -A 2.

Die Option -e bzw -E soll auch für mehrere Ausdrücke, nach denen gesucht wird, genutzt werden können (als ODER). Klappt bei mir garnicht, zb. cat datei | grep -e "From imap server" -e "Excluding folders" -e...
in der nächsten Zeile erscheint dann ein ">", so als hätte man ein Semikolon vergessen, wenn man bei sql wäre.

Wie auch immer, schön wäre, wenn man ab einem bestimmten Wort bzw. Ausdruck noch 6 Zeilen mitnehmen könnte, dann ein weiteres Wort mit nur 2 nachfolgenen Zeilen und ein letztes Drittes mit 8 Zeilen nachfolgend. Und als Ergebnis jedoch folgend anordnen:
Ausdruck 1: Benutzer Toni hat
Ausdruck 2: 1500 Mails
Ausdruck 3: synchronisiert in 15 Minuten
Ausdruck 1: Benutzer Andi hat
...

Gruß
Flep
 
Mit grep kann man ja den Kontext eines Treffers mit ausgeben. Aber ab einem gewissen Punkt ist es einfacher, Scriptsprachen wie perl, python oder ganz klassisch awk zu verwenden. Ich glaube, dieser Punkt ist hier erreicht. Wenn du noch ein Beispiel der Eingabedatei posten würdest, wäre es für uns einfacher ...
 
Hi,

vielen Dank für Antwort.

da mir allerdings der Aufwand im Moment zu groß erscheint, um eine Datei auseinanderzunehmen, schaue ich nach Möglichkeiten, die Ausgabe von Imapsync etwas zu verbessern.

Gruß
Flep
 
Code:
cat datei | grep -E '(wort1|wort2|wort3)'  | sort >>neu.txt

Code:
cat datei | grep -vE '(wort1|wort2|wort3)'  | sort >>neu.txt

______________________________
6c48bb17872c696ef5dbb24a60f4fbf3
http://lin-x.de
 
Oben