Suche nach Text auf der Terminalausgabe

33

Ich führe eine Anwendung mit dem folgenden Befehl aus $ grails run-app.

search_text_terminal

Ich möchte nur einen bestimmten Text (etwa user authorities) in diesem Protokoll suchen , damit ich ihn weiter überprüfen kann. Eine Möglichkeit, Logging Apis zum Schreiben in eine Textdatei zu verwenden, aber ich möchte es im Moment in einem Terminal suchen.

Ich fand eine ähnliche Frage bei der Suche eines Textes auf dem Terminal, der einen screenBefehl vorschlägt , aber ich habe keine Ahnung, wie dies screenin diesem Fall funktioniert. Ich habe es versucht $ screen grails run-app , konnte aber nicht weitermachen.

Ich kann Bildschirmlisten mit sehen

prayag@prayag:~/zlab/nioc2egdelonk$ screen -list
There is a screen on:
    8076.pts-2.prayag   (10/06/2013 12:13:25 PM)    (Attached)
1 Socket in /var/run/screen/S-prayag.
Gebet
quelle
Wie auch immer Sie den Bildschirmbefehl verwenden, aber ich empfehle, lassen Sie es und verwenden Sietmux
PersianGulf
@MohsenPahlevanzadeh, Klar werde ich das auch versuchen tmux. Viel davon zu hören.
Gebet

Antworten:

23

Ctrl+a(Standardbefehlspräfix screen), [( copyEingabemodus) gefolgt von ?SEARCH_TEXTscheint zu funktionieren. Drücken Sie n, um zum nächsten Ereignis zu gelangen. Von dort aus können Sie Wörter, Zeilen, Regionen usw. kopieren, um sie in Dateien abzulegen oder später einzufügen (mit Ctrl+a, ]).

Bildbeschreibung hier eingeben

Gebet
quelle
5
Ich kann das nicht tun. Sie müssen also 3 Tasten gleichzeitig drücken? Strg, a, [?
Capaj
34
Verwenden Sieshift+ctrl+f
Ja8zyjits
15

Wenn du benutzt Konsole (KDE Terminal - Emulator), können Sie verwenden Ctrl+ Shift+ F. Dies funktioniert möglicherweise auch in anderen (Linux-) Terminalemulatoren.

Edit:
@sumit meldet, dass dies auch in Gnome Terminal funktioniert .
@vdicarlo berichtet, dass dies auch in funktioniert XFCE4-Terminal funktioniert .

Augustin
quelle
1
Dies funktioniert auch im GNOME-Terminalemulator.
Sumit
Funktioniert weiter terminator. Vielen Dank!
Ryanjdillon
8

Sie können verwendet werden grepnach dem grailsBefehl: grails run-app | grep "user authorities". Sie müssen Ihren Befehl jedoch erneut ausführen.

Timo
quelle
3
Diese Antwort sollte nicht abgelehnt werden, es ist absolut richtig.
amrx,
2
Richtig, aber es ist sinnvoller, etwas zu tun, nachdem die Ausgabe bereits gedruckt wurde.
Ludwik
@Baron Ich bin mir sogar ziemlich sicher, dass der Fragesteller implizieren wollte, dass der Befehl bereits ausgeführt wird, daher wird die Frage hiermit nicht beantwortet.
Niemand
3

Leiten Sie die Ausgabe zur Pipe um und senden Sie sie an einen grepBefehl:

grails run-app | grep user authorities
Soniya Balasubramanian
quelle
1

Leiten Sie die Ausgabe Ihres Befehls an vim-editor weiter: grails run-app | vim -

Einige Tipps für die Suche mit Vim:

  • Art / dann Ihren Suchbegriff einuser authorities
  • Art :set hlsearch , um Suchergebnisse hervorzuheben
  • Geben Sie ein n, um vorwärts zu suchen, oderShift+n rückwärts zu suchen
  • Denken Sie daran, dass Sie sich jetzt im Editor befinden. Wenn Sie also versehentlich Änderungen vorgenommen haben, können Sie diese zurücksetzen. Drücken Sie einfach ESCeinmal, um den Bearbeitungsmodus zu beenden, und drücken Sie dannu , um eine Bearbeitung rückgängig zu machen
  • Art :q! Sie Vim zu beenden und verwerfen Sie Ihre Suchergebnisse
  • Sie können tun, was Sie wollen :-D http://vim.wikia.com/wiki/Vim_Tips_Wiki
graceman9
quelle
etwas gelernt!
oneindelijk