Grep-Ausgabe aus der Anwendung, auf dem Bildschirm anzeigen und in eine Datei schreiben?

Grep-Ausgabe aus der Anwendung, auf dem Bildschirm anzeigen und in eine Datei schreiben?

Ich führe eine Anwendung aus und leite die Ausgabe an weiter grep. Das funktioniert. Ich möchte die Ausgabe jedoch sowohl auf dem Bildschirm anzeigen als auch in eine Datei schreiben.

Also leite ich das grepErgebnis weiter an tee:

./app | grep something | tee file.txt

Es werden jedoch keine Ergebnisse angezeigt (oder geschrieben), selbst wenn 100 % Ergebnisse vorliegen (ich habe dies mit zwei laufenden Instanzen bestätigt).

Wie greife ich auf die Ausgabe der App zu, schreibe sie in eine Datei und zeige sie auf dem Bildschirm an?

Antwort1

Der Befehl sollte, so wie Sie ihn geschrieben haben, funktionieren. Für die fehlerhafte Funktion des Befehls kann es mehrere Gründe geben.

  1. Die App sendet den Ausgabetext an einen anderen Ausgang als den Standard.
  2. Die Zeichenkette für die Suche mit dem grep-Befehl ist falsch eingegeben.

Lösung des Falles #1

  1. Überprüfen Sie manuell, ob die App den gewünschten Text zur Suche an die Ausgabe sendet../app
  2. Leiten Sie den Ausgabetext in eine Datei um ./app > file.txtund überprüfen Sie den Inhalt der Datei:cat file.txt
  3. Wenn die Datei nicht den gewünschten Text enthält, liegt es wahrscheinlich daran, dass die Anwendung die Ausgabe an die Fehlerausgabe und nicht an die Standardausgabe sendet. Versuchen Sie daher, auf eine andere Weise auf eine Datei umzuleiten,
    ./app 2 > file.txtund überprüfen Sie den Inhalt der Datei erneut:cat file.txt
  4. Wenn der Inhalt der Datei diesmal korrekt ist, ist die Lösung einfach. Sie müssen lediglich die Fehlerausgabe auf die Standardausgabe umleiten.
./app 2>&1 | grep "something" | tee file.txt

Lösung des Falles #2

  1. Überprüfen Sie sorgfältig die Zeichenfolge, die Sie als Suchmuster verwenden. Schließen Sie sie in Anführungszeichen oder Apostrophe ein, um zufällige Fehlinterpretationen von Platzhalterzeichen, $variablename-Variablen, regulären Ausdrücken usw. auszuschließen.
  2. Testen Sie zunächst die Suche mit dem grep für sehr einfache Zeichenfolgen, die nur aus Buchstaben oder Zahlen bestehen und nicht falsch interpretiert werden können.

verwandte Informationen