Como faço para cortar e colar I / O do terminal sem usar o mouse?

4

Eu quero pesquisar e cortar o texto da saída do comando em um terminal para que eu possa usá-lo em chamadas de linha de comando subseqüentes ou apenas em uma sessão do editor.

Existe alguma maneira de executar facilmente uma expressão regular contra a saída de um terminal e cortar resultados sem tocar no mouse?

Meus requisitos são:

  • deve funcionar ao trabalhar com máquinas remotas através do ssh. Nessas máquinas, não consigo instalar software extra, portanto a solução deve ser local.
  • se possível, deve estar "sempre presente". Por exemplo, se estou executando um processo longo e, de repente, ele falha, eu gostaria de poder percorrer a saída sem ter que iniciar o processo novamente com um ambiente preparado.
por tonicebrian 26.06.2012 / 14:36

2 respostas

4

tela (1) permite copiar / colar usando o teclado, mas isso requer que você execute seu shell / processo dentro de screen .

Para copiar, tecle Ctrl + A [, mova o cursor (usando as teclas de seta) para o ponto inicial e pressione (RETURN), mova o cursor para o ponto final e pressione . O texto marcado agora é copiado.

Para colar, pressione Ctrl + A ]

Esta solução também se aplica ao Byobu, já que o Byobu é apenas um wrapper na tela.

    
por geirha 27.06.2012 / 13:20
5

xclip e grep e canais!

  • Instale o utilitário xclip ( sudo apt-get install xclip )

    • Por padrão, xclip está configurado para copiar a entrada canalizada para a área de transferência
    • xclip -o "colará" o conteúdo da área de transferência em seu terminal (isto é, saída padrão)
  • Para expressões regulares, apenas envie o comando para grep; a opção -P fornecerá a funcionalidade completa de regex Perl.

  • Exemplo: ls -lR | grep -P "anc.*" | xclip para copiar para a área de transferência

    • Use tee xclip para que seja exibido E copiado.
por ish 26.06.2012 / 14:41