среда, 12 декабря 2018 г.

Сохранить выделенный текст в файл через скрипт bash


В ходе очередного сеанса ревизии содержания своего жёсткого диска было найдено интересное решение, текст которое сначала был отложен на потом, а затем про него было успешно "забыто". По прошествии времени уже и не вспомню, на каких просторах сети оно было найдено, вследствие чего не в состоянии указать первоисточник.

Сначала проведу маленькую демонстрацию.

Открываю текст (в рассматриваемом случае это файл pdf, но это может быть страница в браузере, файл Word и т.п.) и выделяю текст, который необходимо сохранить в файл.


Нажимаю на кнопку запуска, которая указывает на скрипт sh.





Перехожу в папку с сохранённым файлом и вижу, что скрипт отработал.



Правда здорово? Ну а теперь, собственно, и сам скрипт:

#!/bin/sh
out="/tmp/notes.$$"
dir="$HOME/Dropbox/Notes" # папка, в которую будут сохранятся заметки
xclip -o | zenity --width=600 --height=300 --title  "Текст заметки" --text-info --editable > "$out"
if [ $? -eq 0 -a "`cat "$out"`" != "" ]; then
  name=$(zenity --title "Название заметки" --entry --text "Введите название заметки")
  if [ $? -eq 0 ]; then
   if [ "`echo $name`" = "" ]
    then name="Заметка $$"
   fi
   cp "$out" "$dir/$name.txt"
  fi
fi
rm "$out"
exit 0

Примечание. Если скрипт должным образом не срабатывает, то, возможно, в системе отсутствует пакет xclip. Установите его командой  sudo apt install -y xclip

В свойствах значка запуска галочка в поле "Запускать в терминале" снята.


Кроме кнопок (значков) запуска можно использовать такой инструмент как autokey. Пользуюсь им в течение 7 или 8 лет и за это время мной оценено удобство назначения горячих клавиш на разные специфические операции. В Ubuntu и Linux Mint его можно установить одной командой

  sudo apt install -y autokey-gtk

В поле текст скрипта указать путь к скрипту, например:

import subprocess
subprocess.Popen(["/home/cemea/Tools/scripts/notes.sh"])

Комментариев нет:

Отправить комментарий