как автоматом сохранить буфер обмена в файл
Модератор: Bizdelnick
-
linuxforum0ru
- Сообщения: 145
как автоматом сохранить буфер обмена в файл
Здравствуйте.
Возможно ли автоматом сохранить содержимое буфера обмена в текстовый файл? Использую klipper и parcellite, но там такого не нашел.
Возможно ли автоматом сохранить содержимое буфера обмена в текстовый файл? Использую klipper и parcellite, но там такого не нашел.
-
Nazyvaemykh
- Сообщения: 438
- Статус: Подопытный участник
Re: как автоматом сохранить буфер обмена в файл
Можно использовать пакет xclip. Оно?
¡ Страсть к разрушению есть творческая страсть!
-
linuxforum0ru
- Сообщения: 145
Re: как автоматом сохранить буфер обмена в файл
А оно может постоянно висеть в памяти и мониторить буфер обмена? Желательно еще, чтобы записывала только HTML-ссылки.
-
t.t
- Бывший модератор
- Сообщения: 7390
- Статус: думающий о вечном
- ОС: Debian, LMDE
Re: как автоматом сохранить буфер обмена в файл
linuxforum0ru писал(а): ↑26.08.2010 11:14А оно может постоянно висеть в памяти и мониторить буфер обмена? Желательно еще, чтобы записывала только HTML-ссылки.
Код: Выделить всё
while true; do
xclip ... | grep '^http://.*\.html$' >файл
doneКак-то так.
upd: Только, конечно, не while true, а что-то вроде while sleep 1m — раз в минуту.
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
-
Anguis
- Сообщения: 212
- ОС: Manjaro 17
Re: как автоматом сохранить буфер обмена в файл
У меня тоже есть вопрос по буферу обмена. Только мне нужно, что-бы содержимое файла загружалось в буфер. Какими средствами такое можно реализовать?
-
Nazyvaemykh
- Сообщения: 438
- Статус: Подопытный участник
Re: как автоматом сохранить буфер обмена в файл
Той же самой командой xclip с ключом -i
¡ Страсть к разрушению есть творческая страсть!
-
Bizdelnick
- Модератор
- Сообщения: 21350
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: как автоматом сохранить буфер обмена в файл
В klipper можно настроить действия, например
echo "%s" >> ~/file
echo "%s" >> ~/file
Пишите правильно:
| в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
-
linuxforum0ru
- Сообщения: 145
Re: как автоматом сохранить буфер обмена в файл
Bizdelnick писал(а): ↑26.08.2010 15:11В klipper можно настроить действия, например
echo "%s" >> ~/file
Что-то у меня эта конструкция не работает
-
linuxforum0ru
- Сообщения: 145
Re: как автоматом сохранить буфер обмена в файл
Привет. Кажется разобрался. А можно сделать так, чтобы он еще на автомате все копировал в файл без вывода окна действий?
Копировал сразу всю историю?
Или надо свой софт писать.
Копировал сразу всю историю?
Или надо свой софт писать.
-
t.t
- Бывший модератор
- Сообщения: 7390
- Статус: думающий о вечном
- ОС: Debian, LMDE
Re: как автоматом сохранить буфер обмена в файл
Свой «софт» в данном случае — две-три строки на bash с использованием упомянутого xclip.linuxforum0ru писал(а): ↑28.08.2010 18:10Привет. Кажется разобрался. А можно сделать так, чтобы он еще на автомате все копировал в файл без вывода окна действий?
Копировал сразу всю историю?
Или надо свой софт писать.
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
-
linuxforum0ru
- Сообщения: 145
Re: как автоматом сохранить буфер обмена в файл
Привет.
Мне надо чтобы новая скопированная строка в буфер не повторялась с предыдущей, чтобы в файл не копировались одинаковые строки.
Как это можно сделать в bash? Как присвоить переменной значение xclip -o | grep 'http://.*' >>файл
чтобы можно было сравнить текущую ссылку с предыдущей?
Мне надо чтобы новая скопированная строка в буфер не повторялась с предыдущей, чтобы в файл не копировались одинаковые строки.
Как это можно сделать в bash? Как присвоить переменной значение xclip -o | grep 'http://.*' >>файл
чтобы можно было сравнить текущую ссылку с предыдущей?
-
drBatty
- Сообщения: 8735
- Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
- ОС: Slackware-current
Re: как автоматом сохранить буфер обмена в файл
linuxforum0ru писал(а): ↑01.09.2010 20:42Мне надо чтобы новая скопированная строка в буфер не повторялась с предыдущей
Shell
$ cat skip_eq.sed
#!/bin/sed -rnf
G
s~^(.*)\n\1$~~
# если строки одинаковые, ничего не делаем
# т.е. переходим к сл. строке
t
# разные строки
# выводим текущую
s~\n.*~~p
# и её сохраняем
h
Shell
$ cat >test.txt
aaa
bbb
ccc
ccc
ccc
ccc
ddd
ddd
eee
fff
fff
fff
Shell
$ ./skip_eq.sed test.txt
aaa
bbb
ccc
ddd
eee
fff
linuxforum0ru писал(а): ↑01.09.2010 20:42Как присвоить переменной значение xclip -o | grep 'http://.*' >>файл
чтобы можно было сравнить текущую ссылку с предыдущей?
не понял вопроса.
-
SLEDopit
- Модератор
- Сообщения: 4824
- Статус: фанат консоли (=
- ОС: GNU/Debian, RHEL
Re: как автоматом сохранить буфер обмена в файл
А если через одну идет повтор, то все нормально?linuxforum0ru писал(а): ↑01.09.2010 20:42Мне надо чтобы новая скопированная строка в буфер не повторялась с предыдущей, чтобы в файл не копировались одинаковые строки.
Имхо, для исключения повторений надо делать так:
Код: Выделить всё
xclip -o | grep 'http://.*' | sort | uniq >> файлКод: Выделить всё
xclip -o | grep 'http://.*' | uniq >> файлвидимо человек хочет сравнивать как то для исключения повторений.
UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity. © Dennis Ritchie
The more you believe you don't do mistakes, the more bugs are in your code.
The more you believe you don't do mistakes, the more bugs are in your code.
-
drBatty
- Сообщения: 8735
- Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
- ОС: Slackware-current
Re: как автоматом сохранить буфер обмена в файл
как я понимаю, пока sort весь поток не пожрёт, на выход она ничего не отдаст. не?
ещё лучше будет sed-скрипт, в который вставленное условие \~http://\.*~
(кстати, а что домены с точки начинаются?)
сложность тут в том, что это не просто текстовый файл, а бесконечный поток. впрочем, я уже написал как сравнивать именно потоки.
-
drBatty
- Сообщения: 8735
- Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
- ОС: Slackware-current
Re: как автоматом сохранить буфер обмена в файл
вот как раз для такой задачи (если надо хранить ВСЮ историю) sed и хороша. Только памяти будет много жрать. Но тут ИМХО иначе никак. (не, можно той-же sed писать историю в файл, тоже вариант, если нужна одна и та же история всё время, ну что-бы не сохранялся сохранённый 10 лет назад пароль ;) )
PS: а скрипт такой я уже написал.
-
SLEDopit
- Модератор
- Сообщения: 4824
- Статус: фанат консоли (=
- ОС: GNU/Debian, RHEL
Re: как автоматом сохранить буфер обмена в файл
да, так и есть.
Код: Выделить всё
$ for i in `seq 1000000`; do echo http://www.$RANDOM.com >> http_list; done
$ time for i in `seq 1000`; do xclip -o | grep 'http://.*' | uniq >> /dev/null; done
real 0m44.600s
user 0m1.944s
sys 0m49.159s
$ time for i in `seq 1000`; do xclip -o | sed -rn 'G;s~^(.*)\n\1$~~;t;s~\n.*~~p;h' >> /dev/null; done
real 0m33.217s
user 0m2.136s
sys 0m33.094sКод: Выделить всё
$ echo 'http://..
> http://ww' | grep 'http://.*'
http://..
http://wwя что-то не очень понимаю, в чем принципиальная разница xclip -o и cat file перед пайпом?
UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity. © Dennis Ritchie
The more you believe you don't do mistakes, the more bugs are in your code.
The more you believe you don't do mistakes, the more bugs are in your code.
-
drBatty
- Сообщения: 8735
- Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
- ОС: Slackware-current
Re: как автоматом сохранить буфер обмена в файл
на самом деле это от очень многого зависит. sed может и медленнее работать, зависит от реализации...
но две команды в пайпе обычно медленнее, чем проверка внутри sed. (я предлагал перенести проверку из grep в sed)
попробуйте
$
cat | sortи
$
cat | sed ''И сразу поймёте - sed глотает по строчкам, а sort только целиком, до EOF.
Спасибо сказали: