Как скопировать всю историю буфера обмена в текстовый файл?

правильный способ в этом случае:

rm ./-p

-- может работать с некоторыми командами и терпеть неудачу с другими. это не bash, который интерпретирует его, но каждая команда отдельно (и некоторые из них могут не распознать -- как конец опций) (особенно это верно, если вы когда-либо использовали команды не gnu ... например, если вы работаете с некоторыми другими ОС) .

По привычке говорить ./somefileorglob вместо того, чтобы просто somefileorglob является хорошей привычкой, вообще.

9
задан 17 May 2012 в 01:26

53 ответа

пользователь Parcellite, щелкните левой кнопкой мыши по его значку, «очистите», выберите, сколько раз вы хотите, после этого «отредактируйте буфер обмена» и скопируйте все это! Помните, что установите предпочтение: используйте первичный выбор, чтобы упростить копирование текста!

0
ответ дан 6 August 2018 в 02:21

Установите Диспетчер клипов KDE Kipper и используйте следующий простой скрипт:

text="nothing yet"
cnt=0
while [ "$text" != "" ]; do
  text=`qdbus org.kde.klipper /klipper getClipboardHistoryItem $cnt`
  echo "==== Clipboard content line $cnt:"
  echo "$text"                      # to terminal output
  echo "$text" > /path/to/file      # to file (EDIT this)
  cnt=$((cnt + 1))
done

Примечание. Это не очень хорошо работает в Unity, поэтому похоже на то. Таким образом, в других средах настольных компьютеров, кроме KDE: , ваш пробег может меняться .

1
ответ дан 6 August 2018 в 02:21

Вы можете увидеть некоторые строки в файле истории клипа с помощью этой команды:

strings ~/.local/share/clipit/history

Но это не лучший способ. Выходной сигнал может быть искажен.

2
ответ дан 6 August 2018 в 02:21

Последняя версия Parcellite имеет пункт меню Save As при нажатии на значок. Это сохранит все записи истории в файле. При нажатии правой кнопкой мыши на список хронологии также есть паста, которая будет размещать весь список истории в буфере обмена. В настройках есть разделитель Paste All, который будет помещен в конце каждой записи.

https://sourceforge.net/projects/parcellite/files/parcellite/parcellite-1.1.1/ ppa здесь: https://launchpad.net/~rickyrockrat/+archive/ppa

1
ответ дан 6 August 2018 в 02:21

существует скрипт python для ClipIt, который запускает его следующим образом: python cliphist.py > clipit.history.txt

#!/usr/bin/env python
"""cliphist.py: utility to print clipit history file.
If an argument is passed on the command line, it will
be used as a separator, otherwise history items are
separated by a blank line. """

import struct, os, sys

homedir  = os.environ['HOME']
histfile = homedir + '/.local/share/clipit/history'
if len(sys.argv) > 1:
    sep = sys.argv[1]
else:
    sep = '---------------------------------------------------------------------'


with open(histfile,'rb') as f:
    f.read(68)
    size,_ = struct.unpack('2i',f.read(8))
    while (size > 0):
        item = f.read(size)
        print item
        _,_,_,size,_ = struct.unpack('5i',f.read(20))
        if size > 0: 
            print sep
3
ответ дан 6 August 2018 в 02:21

Измененный код из @ stepan-shamaiev для Python 3 и без установки разделителя:

#!/usr/bin/env python3
"""cliphist.py: utility to print clipit history file."""

import struct, os

homedir  = os.environ['HOME']
histfile = homedir + '/.local/share/clipit/history'

with open(histfile,'rb') as f:
  f.read(68)
  size, _ = struct.unpack('2i', f.read(8))
  while size > 0:
    item = f.read(size)
    print(item.decode())
    _,_,_,size,_ = struct.unpack('5i',f.read(20))
    if size > 0: 
      print('------------------')
0
ответ дан 6 August 2018 в 02:21

пользователь Parcellite, щелкните левой кнопкой мыши по его значку, «очистите», выберите, сколько раз вы хотите, после этого «отредактируйте буфер обмена» и скопируйте все это! Помните, что установите предпочтение: используйте первичный выбор, чтобы упростить копирование текста!

0
ответ дан 7 August 2018 в 19:54

Установите Диспетчер клипов KDE Kipper и используйте следующий простой скрипт:

text="nothing yet"
cnt=0
while [ "$text" != "" ]; do
  text=`qdbus org.kde.klipper /klipper getClipboardHistoryItem $cnt`
  echo "==== Clipboard content line $cnt:"
  echo "$text"                      # to terminal output
  echo "$text" > /path/to/file      # to file (EDIT this)
  cnt=$((cnt + 1))
done

Примечание. Это не очень хорошо работает в Unity, поэтому похоже на то. Таким образом, в других средах настольных компьютеров, кроме KDE: , ваш пробег может меняться .

1
ответ дан 7 August 2018 в 19:54

Вы можете увидеть некоторые строки в файле истории клипа с помощью этой команды:

strings ~/.local/share/clipit/history

Но это не лучший способ. Выходной сигнал может быть искажен.

2
ответ дан 7 August 2018 в 19:54

Последняя версия Parcellite имеет пункт меню Save As при нажатии на значок. Это сохранит все записи истории в файле. При нажатии правой кнопкой мыши на список хронологии также есть паста, которая будет размещать весь список истории в буфере обмена. В настройках есть разделитель Paste All, который будет помещен в конце каждой записи.

https://sourceforge.net/projects/parcellite/files/parcellite/parcellite-1.1.1/ ppa здесь: https://launchpad.net/~rickyrockrat/+archive/ppa

1
ответ дан 7 August 2018 в 19:54

существует скрипт python для ClipIt, который запускает его следующим образом: python cliphist.py > clipit.history.txt

#!/usr/bin/env python
"""cliphist.py: utility to print clipit history file.
If an argument is passed on the command line, it will
be used as a separator, otherwise history items are
separated by a blank line. """

import struct, os, sys

homedir  = os.environ['HOME']
histfile = homedir + '/.local/share/clipit/history'
if len(sys.argv) > 1:
    sep = sys.argv[1]
else:
    sep = '---------------------------------------------------------------------'


with open(histfile,'rb') as f:
    f.read(68)
    size,_ = struct.unpack('2i',f.read(8))
    while (size > 0):
        item = f.read(size)
        print item
        _,_,_,size,_ = struct.unpack('5i',f.read(20))
        if size > 0: 
            print sep
3
ответ дан 7 August 2018 в 19:54

Измененный код из @ stepan-shamaiev для Python 3 и без установки разделителя:

#!/usr/bin/env python3
"""cliphist.py: utility to print clipit history file."""

import struct, os

homedir  = os.environ['HOME']
histfile = homedir + '/.local/share/clipit/history'

with open(histfile,'rb') as f:
  f.read(68)
  size, _ = struct.unpack('2i', f.read(8))
  while size > 0:
    item = f.read(size)
    print(item.decode())
    _,_,_,size,_ = struct.unpack('5i',f.read(20))
    if size > 0: 
      print('------------------')
0
ответ дан 7 August 2018 в 19:54

существует скрипт python для ClipIt, который запускает его следующим образом: python cliphist.py > clipit.history.txt

#!/usr/bin/env python
"""cliphist.py: utility to print clipit history file.
If an argument is passed on the command line, it will
be used as a separator, otherwise history items are
separated by a blank line. """

import struct, os, sys

homedir  = os.environ['HOME']
histfile = homedir + '/.local/share/clipit/history'
if len(sys.argv) > 1:
    sep = sys.argv[1]
else:
    sep = '---------------------------------------------------------------------'


with open(histfile,'rb') as f:
    f.read(68)
    size,_ = struct.unpack('2i',f.read(8))
    while (size > 0):
        item = f.read(size)
        print item
        _,_,_,size,_ = struct.unpack('5i',f.read(20))
        if size > 0: 
            print sep
3
ответ дан 10 August 2018 в 08:19

Установите Диспетчер клипов KDE Kipper и используйте следующий простой скрипт:

text="nothing yet"
cnt=0
while [ "$text" != "" ]; do
  text=`qdbus org.kde.klipper /klipper getClipboardHistoryItem $cnt`
  echo "==== Clipboard content line $cnt:"
  echo "$text"                      # to terminal output
  echo "$text" > /path/to/file      # to file (EDIT this)
  cnt=$((cnt + 1))
done

Примечание. Это не очень хорошо работает в Unity, поэтому похоже на то. Таким образом, в других средах настольных компьютеров, кроме KDE: , ваш пробег может меняться .

1
ответ дан 10 August 2018 в 08:19

Вы можете увидеть некоторые строки в файле истории клипа с помощью этой команды:

strings ~/.local/share/clipit/history

Но это не лучший способ. Выходной сигнал может быть искажен.

2
ответ дан 10 August 2018 в 08:19

Последняя версия Parcellite имеет пункт меню Save As при нажатии на значок. Это сохранит все записи истории в файле. При нажатии правой кнопкой мыши на список хронологии также есть паста, которая будет размещать весь список истории в буфере обмена. В настройках есть разделитель Paste All, который будет помещен в конце каждой записи.

https://sourceforge.net/projects/parcellite/files/parcellite/parcellite-1.1.1/ ppa здесь: https://launchpad.net/~rickyrockrat/+archive/ppa

1
ответ дан 10 August 2018 в 08:19

Измененный код из @ stepan-shamaiev для Python 3 и без установки разделителя:

#!/usr/bin/env python3
"""cliphist.py: utility to print clipit history file."""

import struct, os

homedir  = os.environ['HOME']
histfile = homedir + '/.local/share/clipit/history'

with open(histfile,'rb') as f:
  f.read(68)
  size, _ = struct.unpack('2i', f.read(8))
  while size > 0:
    item = f.read(size)
    print(item.decode())
    _,_,_,size,_ = struct.unpack('5i',f.read(20))
    if size > 0: 
      print('------------------')
0
ответ дан 10 August 2018 в 08:19

пользователь Parcellite, щелкните левой кнопкой мыши по его значку, «очистите», выберите, сколько раз вы хотите, после этого «отредактируйте буфер обмена» и скопируйте все это! Помните, что установите предпочтение: используйте первичный выбор, чтобы упростить копирование текста!

0
ответ дан 15 August 2018 в 20:24
  • 1
    Привет, Акварий! Большое вам спасибо за ответ. Однако, когда я нажимаю кнопку редактирования буфера обмена, я вижу только последнее слово, которое я скопировал, а не весь список. Может быть, с вами это работает по-другому? Возможно, мне нужно настроить что-то в настройках. – pandisvezia 21 September 2012 в 22:14
  • 2
    есть этот файл ~ / .local / share / parcellite / history, проблема в том, что у него есть непечатаемые символы для новой строки и т. д., вы можете попробовать autoReplacing / erasing them, но теперь это начинает запутываться ... – Aquarius Power 7 January 2013 в 02:15

Установите Диспетчер клипов KDE Kipper и используйте следующий простой скрипт:

text="nothing yet"
cnt=0
while [ "$text" != "" ]; do
  text=`qdbus org.kde.klipper /klipper getClipboardHistoryItem $cnt`
  echo "==== Clipboard content line $cnt:"
  echo "$text"                      # to terminal output
  echo "$text" > /path/to/file      # to file (EDIT this)
  cnt=$((cnt + 1))
done

Примечание. Это не очень хорошо работает в Unity, поэтому похоже на то. Таким образом, в других средах настольных компьютеров, кроме KDE: , ваш пробег может меняться .

1
ответ дан 15 August 2018 в 20:24

Вы можете увидеть некоторые строки в файле истории клипа с помощью этой команды:

strings ~/.local/share/clipit/history

Но это не лучший способ. Выходной сигнал может быть искажен.

2
ответ дан 15 August 2018 в 20:24

Последняя версия Parcellite имеет пункт меню Save As при нажатии на значок. Это сохранит все записи истории в файле. При нажатии правой кнопкой мыши на список хронологии также есть паста, которая будет размещать весь список истории в буфере обмена. В настройках есть разделитель Paste All, который будет помещен в конце каждой записи.

https://sourceforge.net/projects/parcellite/files/parcellite/parcellite-1.1.1/ ppa здесь: https://launchpad.net/~rickyrockrat/+archive/ppa

1
ответ дан 15 August 2018 в 20:24

существует скрипт python для ClipIt, который запускает его следующим образом: python cliphist.py > clipit.history.txt

#!/usr/bin/env python
"""cliphist.py: utility to print clipit history file.
If an argument is passed on the command line, it will
be used as a separator, otherwise history items are
separated by a blank line. """

import struct, os, sys

homedir  = os.environ['HOME']
histfile = homedir + '/.local/share/clipit/history'
if len(sys.argv) > 1:
    sep = sys.argv[1]
else:
    sep = '---------------------------------------------------------------------'


with open(histfile,'rb') as f:
    f.read(68)
    size,_ = struct.unpack('2i',f.read(8))
    while (size > 0):
        item = f.read(size)
        print item
        _,_,_,size,_ = struct.unpack('5i',f.read(20))
        if size > 0: 
            print sep
3
ответ дан 15 August 2018 в 20:24
  • 1
    не пробовал это, но он выглядит правильно и отвечает на вопрос (относительно Clipit) – user7610 12 July 2014 в 20:16

Измененный код из @ stepan-shamaiev для Python 3 и без установки разделителя:

#!/usr/bin/env python3
"""cliphist.py: utility to print clipit history file."""

import struct, os

homedir  = os.environ['HOME']
histfile = homedir + '/.local/share/clipit/history'

with open(histfile,'rb') as f:
  f.read(68)
  size, _ = struct.unpack('2i', f.read(8))
  while size > 0:
    item = f.read(size)
    print(item.decode())
    _,_,_,size,_ = struct.unpack('5i',f.read(20))
    if size > 0: 
      print('------------------')
0
ответ дан 15 August 2018 в 20:24

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

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