buscar texto en la salida del terminal

33

Estoy ejecutando una aplicación con un comando $ grails run-appque imprime el terminal de inicio de sesión como a continuación.

search_text_terminal

Lo que quiero es buscar un texto en particular (digamos user authorities) en este registro para poder verificarlo más a fondo. Una forma de usar Logging Apis para escribir en un archivo de texto, pero quiero buscarlo en una terminal en este momento.

Encontré una pregunta similar sobre cómo hacer buscar un texto en el terminal directamente que sugiera el screencomando, pero no tengo idea de cómo screenfunciona en este caso. Lo intenté $ screen grails run-app pero no pude seguir adelante.

Puedo ver listas de pantallas con

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.
prayagupd
fuente
Sin embargo, utiliza el comando de pantalla, pero sugiero dejarlo y usarlotmux
PersianGulf
@MohsenPahlevanzadeh, claro que lo intentaré tmuxtambién. Al escucharlo mucho.
prayagupd

Respuestas:

23

Ctrl+a( screenprefijo de comando predeterminado ), [( copymodo de ingreso ) seguido de ?SEARCH_TEXTparece funcionar. Presione npara ir al siguiente evento. Desde allí, puede copiar palabras, líneas, regiones, etc. para volcarlas en archivos o pegarlas más adelante (con Ctrl+a, ]).

ingrese la descripción de la imagen aquí

prayagupd
fuente
55
No puedo hacer esto. ¿Entonces necesita presionar 3 teclas a la vez? Ctrl, a, [?
Capaj
34
usoshift+ctrl+f
Ja8zyjits
15

Si usa Konsole (emulador de terminal KDE), puede usar Ctrl+ Shift+ F. Esto podría funcionar también en otros emuladores de terminal (Linux).

Editar:
@sumit informa que esto también funciona en Gnome Terminal .
@vdicarlo informa que esto también funciona en la Terminal XFCE4 .

Agustín
fuente
1
Esto también funciona en el emulador de terminal de GNOME.
Sumit
Funciona en terminator. ¡Gracias!
ryanjdillon
8

Se puede utilizar grepdespués de que el grailscomando: grails run-app | grep "user authorities". Sin embargo, tendrá que volver a ejecutar su comando.

Timo
fuente
3
Esta respuesta no debe ser rechazada, es absolutamente correcta.
amrx
2
Si bien es correcto, es más útil tener algo que uno pueda hacer después de que la salida ya se haya impreso.
Ludwik
@Baron, incluso estoy bastante seguro de que el autor de la pregunta quería decir que el comando ya se está ejecutando, por lo que esto no responde la pregunta.
Nadie el
3

Redireccione la salida a la tubería y envíela a un grepcomando:

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

Redirija la salida de su comando a vim-editor: grails run-app | vim -

Varios consejos para buscar usando Vim:

  • escriba y /luego ingrese su cadena de búsquedauser authorities
  • escriba :set hlsearchpara resaltar los resultados de búsqueda
  • escriba npara buscar hacia adelante o Shift+nhacia atrás
  • recuerda que ahora estás en el editor, así que si hiciste algunos cambios accidentalmente puedes revertirlo, solo presiona ESCuna vez para salir del modo de edición, luego presiona upara deshacer una edición
  • escriba :q!para salir de Vim y descartar sus resultados de búsqueda
  • puedes hacer lo que quieras :-D http://vim.wikia.com/wiki/Vim_Tips_Wiki
graceman9
fuente
aprendí algo!
oneindelijk