Copiar o gancho para gravar em um arquivo

2

Muitas vezes eu leio um texto e preciso copiar alguns blocos de texto para um arquivo separado. Normalmente, eu uso copiar / colar em algum arquivo como a.txt.

É possível copiar somente (CTRL + C) para o mesmo efeito de gravar no arquivo a.txt?

    
por prosti 02.08.2017 / 12:31

1 resposta

2

Aqui está um pequeno script do Python 3 que captura as alterações da área de transferência e as imprime no terminal:

#!/usr/bin/env python3

import gi
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk, Gdk

import signal
signal.signal(signal.SIGINT, signal.SIG_DFL)

def callback(*args):
    print(clip.wait_for_text(), flush=True)

clip = Gtk.Clipboard.get(Gdk.SELECTION_CLIPBOARD)
clip.connect('owner-change', callback)
Gtk.main()

Você pode salvar este arquivo, por exemplo ...

  • como ~/bin/cliplog (qualquer nome dentro do diretório bin/ no diretório inicial do usuário - talvez seja necessário criar esse diretório e executar source .profile primeiro, se ainda não existir), se desejar para seu usuário apenas,
  • ou como /usr/local/bin/cliplog (qualquer nome dentro de /usr/local/bin/ - você precisa de privilégios sudo / root para salvar um arquivo lá) se todos os usuários em sua máquina tiverem acesso a ele.

Não se esqueça de torná-lo executável usando chmod +x /path/to/wherever/you/saved/cliplog .

Agora você pode simplesmente digitar o comando cliplog (ou como você o nomeou) no seu terminal e o script acima irá capturar todas as alterações em sua área de transferência e imprimir o conteúdo alterado.

Por favor note que este comando é executado para sempre até que você o interrompa pressionando Ctrl + C no terminal. (Sim, é o mesmo atalho para copiar coisas na área de trabalho como para enviar o sinal de interrupção SIGINT no terminal.)

Para armazenar automaticamente esse log em um arquivo, basta usar o redirecionamento do Bash:

cliplog > mylogfile.txt

Ou se você quiser ver a saída e salvá-la em um arquivo de log, use tee :

cliplog | tee mylogfile.txt

Se você deseja anexar ao arquivo de log em vez de sobrescrevê-lo, use >> ou tee -a .

    
por Byte Commander 02.08.2017 / 15:49