pesquisar texto na saída do terminal

33

Estou executando um aplicativo com o comando $ grails run-appque imprime o terminal de logon como abaixo.

search_text_terminal

O que eu quero é pesquisar um texto específico (digamos user authorities) neste log para que eu possa verificar mais. Uma maneira de usar o Logging Apis para escrever no arquivo de texto, mas eu quero procurá-lo em um terminal no momento.

Eu encontrei uma pergunta semelhante sobre como fazer da pesquisa um texto diretamente no terminal, o que sugere um screencomando, mas não tenho idéia de como screenfunciona neste caso. Eu tentei, $ screen grails run-app mas não consegui seguir em frente.

Eu posso ver as listas de tela com

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
fonte
no entanto você usar o comando tela, mas eu sugggest deixá-lo e usotmux
Golfo Pérsico
@MohsenPahlevanzadeh, claro que vou tentar tmuxtambém. Ouvindo muito disso.
prayagupd

Respostas:

23

Ctrl+a( screenprefixo do comando padrão ), [( copymodo de entrada ) seguido de ?SEARCH_TEXTparece funcionar. Pressione npara ir para a próxima ocorrência. A partir daí, você pode copiar palavras, linhas, regiões etc. para despejar em arquivos ou colar posteriormente (comCtrl+a , ]).

insira a descrição da imagem aqui

prayagupd
fonte
5
Eu não posso fazer isto. Então você precisa pressionar 3 teclas ao mesmo tempo? ctrl, a, [?
Capaj
34
usarshift+ctrl+f
Ja8zyjits
15

Se você usa o Konsole (emulador de terminal do KDE), pode usar Ctrl+ Shift+ F. Isso pode funcionar também em outros emuladores de terminal (Linux).

Edit:
@sumit relata que isso também funciona no Terminal Gnome .
O @vdicarlo relata que isso também funciona no terminal XFCE4 .

Augustin
fonte
1
Isso funciona também no emulador de terminal GNOME.
Sumit
Trabalhos sobre terminator. Obrigado!
ryanjdillon 21/10
8

Você pode usar grepapós o grailscomando: grails run-app | grep "user authorities". No entanto, você precisará executar novamente seu comando.

Timo
fonte
3
Esta resposta não deve ser rejeitada, é absolutamente correta.
amrx
2
Enquanto estiver correto, é mais útil ter algo que se possa fazer depois que a saída já tiver sido impressa.
Ludwik
@ Baron Eu tenho certeza que o autor da pergunta sugeriu que o comando já está sendo executado, portanto isso não responde à pergunta.
Ninguém
3

Redirecione a saída para o canal e envie-a para um grepcomando:

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

Redirecione a saída do seu comando para o vim-editor: grails run-app | vim -

Várias dicas para pesquisa usando o Vim:

  • digite /e digite sua string de pesquisauser authorities
  • digite :set hlsearchpara destacar os resultados da pesquisa
  • digite npara pesquisar para frente ou Shift+npara trás
  • lembre-se de que você está no editor agora, portanto, se você fez algumas alterações acidentalmente, pode reverter, basta pressionar ESCuma vez para sair do modo de edição e depois pressionar upara desfazer uma edição
  • digite :q!para sair do Vim e descartar seus resultados de pesquisa
  • você pode fazer o que quiser :-D http://vim.wikia.com/wiki/Vim_Tips_Wiki
graceman9
fonte
aprendi alguma coisa!
oneindelijk