Рычаг копии для записи в файл

Часто я читал текст и потребность скопировать некоторые текстовые блоки в отдельный файл. Обычно, я использую скопировать/вставить для некоторого файла как a.txt.

Действительно ли возможно, что я действительно только копирую (CTRL+C) для того же эффекта, пишущего в файл a.txt?

2
задан 2 August 2017 в 13:31

1 ответ

Вот немного сценария Python 3, который получает изменения буфера обмена и печатает их к терминалу:

#!/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()

Можно сохранить этот файл, например.

  • как ~/bin/cliplog (любое имя в bin/ каталог в корневом каталоге Вашего пользователя - Вам, возможно, придется создать тот каталог и работать source .profile сначала, если это еще не существует), если Вы хотите это для своего пользователя только,
  • или как /usr/local/bin/cliplog (любое имя внутри /usr/local/bin/ - Вам нужно sudo / полномочия пользователя root сохранить файл там, хотя), если у каждого пользователя на Вашей машине должен быть доступ к нему.

Не забывайте делать это исполняемым использованием chmod +x /path/to/wherever/you/saved/cliplog.


Теперь можно просто ввести команду cliplog (или однако Вы назвали его) в Вашем терминале, и сценарий выше получит все изменения в Вашем буфере обмена и распечатает измененное содержание.

Обратите внимание на то, что эта команда работает навсегда, пока Вы не прерываете ее путем нажатия Ctrl+C в терминале. (Да, это - тот же ярлык для копирования материала на рабочем столе что касается отправки сигнала прерывания SIGINT в терминале.)


Для автоматического хранения это входит в систему файл, просто использует перенаправление Bash:

cliplog > mylogfile.txt

Или если Вы хотите и видеть вывод и сохранить его в файле журнала, использовать tee:

cliplog | tee mylogfile.txt

Если Вы хотите добавить к файлу журнала вместо того, чтобы перезаписать его, использовать >> или tee -a вместо этого.

2
ответ дан 2 December 2019 в 03:37

Другие вопросы по тегам:

Похожие вопросы: