wie grep mehrere Wörter aus verschiedenen Zeilen in der gleichen log

Möchte ich grep nach Dateien, die die Wörter in unterschiedliche Linien von gleicher log. die Worte sind checkCredit?msisdn=766117506 und creditLimit

Die log-Datei ist wie diese

freeMemory 103709392time Mon Mar 12 04:02:13 TRITT 2018
http://127.0.0.1:8087/DialogProxy/services/ServiceProxy/checkCredit?msisdn=767807544&transid=45390124
freeMemory 73117016time Mon Mar 12 04:02:14 TRITT 2018
statusCode200
{statusCode=200, response=outstandingAmount 0.0 creditLimit 0.0, errorResponse=, responseTime=0}
dies ist balnce 0.0

Was ist der beste Weg, dies zu tun?

  • Würden Sie so freundlich sein, zu erklären, ein wenig mehr Struktur Ihrer Beiträge haben? Ist es eine log-Datei mit nur einer Zeile? Darüber hinaus gibt es ein Tippfehler ist balnce: haben Sie Kopie-aufgeklebt es?
  • Nicht die nicht eine Linie, seine Linie in der gleichen log-Datei. in meiner Frage, die ich hochgeladen habe die log-Datei, die details und das möchte ich filter nur die checkCredit?msisdn=767807544 und creditLimit.
  • Wie Gautam vorgeschlagen, call grep und Suche für creditLimit. Zum Beispiel grep creditLimit log.txt. Das funktioniert. Wenn Sie brauchen, um zu kombinieren die Suche, z.B. Suche, die beide Wörter gleichzeitig/Zeile, das ist unklar.
  • ich muss grep beide Wörter gleich mal mit einem grep-Befehl.
  • nach dem KUSS Prinzip könnte man tun: grep creditLimit log.txt | grep checkCredit oder was auch immer string. Das wird Rohr Ihrem Befehl und entfernen Sie alle Zeilen, die nur match checkCredit. Mit Bezug auf der beste Weg, es zu tun, imho, was funktioniert und ist einfach und gut lesbar ist der beste Weg.
InformationsquelleAutor mahesh | 2018-04-18



4 Replies
  1. 0

    Können Sie

    $ grep -e 'checkCredit?msisdn=766117506' -e 'creditLimit' <filename>
    • danke für die freundliche Antwort. ich habe diesen Befehl verwenden, dann werden nur die creditLimit details. warum ist das so.?
    • seit Sie anrufen egrep, der string wird davon ausgegangen, dass ein regulärer Ausdruck. Die ? Zeichen ist ein regex operator. Meine beste Wette ist diese: die regex interpretiert und gelöst werden. Neben dieser Befehl würde mit jeder Zeile, die einen oder mehrere dieser strings, nicht die angeforderten Linien nur mit den beiden zusammen.
    • können Sie mir bitte den richtigen Befehl
  2. 0

    Einfach versuchen

    grep creditLimit log.txt | grep checkCredit

    • Nein, tut er nicht. Bitte überprüfen Sie die Kommentare unter OP-Frage, und zwar: ich muss grep beide Wörter gleich mal mit einem grep-Befehl.
  3. 0

    Geben diesem einen Versuch:

    grep 'checkCredit?msisdn\|creditLimit' inputfile
    • grep ‚checkCredit?msisdn=766117506\|creditLimit‘ inputfile catalina.out_bckp , wenn ich diesen Befehl ausführen es auch nur der Bildschirm creditLimit details, warum es nicht in die checkCredit?msisdn=766117506 details.
    • Was ist Ihre grep version? GNU grep und BSD grep verhält sich anders. Bitte versuchen Sie es: grep 'checkCredit\|creditLimit' inputfile
  4. 0

    grep ‚checkCredit?msisdn=766117506\|creditLimit‘ inputfile catalina.out_bckp , wenn ich diesen Befehl ausführen es auch nur der Bildschirm creditLimit details, warum es nicht in die checkCredit?msisdn=766117506 details.

    Die log-Datei, wie gezeigt, in Ihrer Frage post nicht enthalten 766117506, so ist es kein Wunder, dass grep nicht gefunden. Wenn Sie wirklich Daten mit 766117506 ist, fügen Sie die Frage stellen.

    Ich habe diesen Befehl grep ‚checkCredit?msisdn\|dies ist balnce‘ catalina.out_bckp |awk ‚$4 < 10 {print ;}‘ es gab mir ein gutes Ergebnis, aber es gibt einige fehlende Werte.

    Sie noch nicht verwendet creditLimit Muster, so ist es kein Wunder, dass diese Zeilen fehlen.

    • In meiner Frage seinen ein Beispiel, das ich Ihnen zeigen möchte. dies ist balnce ist eine andere Sache, die ich möchte grep aus, dass Protokoll und dieses Protokoll enthält verschiedene Art von zahlen als Beispiel nur eine Zahl, die im Protokoll angezeigt werden 766117506 es gibt so viele zahlen.
    • Ein Beispiel, das nicht das problem aufweisen, ist nutzlos; Sie hätten zu zeigen, ein Beispiel, das erlaubt, das problem zu reproduzieren. Auch müssten Sie den Staat mehr genau, was ist einige fehlende Werte.
    • habe ich erwähnt, die meisten wichtigen Teile, die in der Frage in Bezug auf das, was ich eigentlich will.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.