como fazer a busca de um texto no terminal diretamente

1

Eu tenho um programa que envia alguns dados para o terminal (via printf ()). É possível pesquisar um texto no texto de saída no terminal diretamente ?

É possível fazer a busca direcionando os textos para um arquivo, em seguida, fazer uma pesquisa sobre ele, em seguida, enviar o resultado para o terminal, mas não é o que estou perguntando.

EDIT: o que eu quis dizer com "pesquisa": Gostaria de saber se é possível pesquisar um texto, por exemplo, como posso pesquisar libgnome-desktop na saída do terminal abaixo?

    
por Angs 09.08.2013 / 23:03

3 respostas

6

Você pode usar o multiplexador de terminal tmux para executar seu programa em qualquer terminal. Então você pode pesquisar através da janela entrando no modo de cópia com Ctrl - b [, e usar o emacs ( Ctrl - s ) ou as palavras-chave vi ( / ) para procurar por uma string dependendo se o modo emacs ou vi estiver selecionado.

As teclas disponíveis para sair do modo de cópia são Esc ou Enter para diferentes versões de tmux .

Como alternativa, alguns terminais suportam a pesquisa do buffer da janela, como o urxvt com a extensão searchable-scrollback Perl.

    
por 09.08.2013 / 23:10
4

Se você estava usando tela , então você poderia ir para o modo de cópia Ctrl + a [ e então tipo: %código% Para continuar procurando por mais instâncias, pressione n para o próximo e N para a instância anterior da string pesquisada. Para sair do modo de cópia, pressione Esc .

Adicionalmente, com tela você pode pressionar espaço quando estiver no modo de cópia para começar a destacar o texto e pressionar espaço novamente para copiar o texto realçado. Isso pode ser colado no prompt ou em qualquer outro lugar na entrada do terminal com Ctrl + a ] .

    
por 09.08.2013 / 23:37
0

Por search você quer dizer o que? find , grep ou outra coisa?

Você pode colocar a saída do seu printf como um argumento para outro comando através da sintaxe $()

grep "$(printf "%s" 'foo')" file
    
por 09.08.2013 / 23:10