Wie kopiere ich den gesamten Verlauf der Zwischenablage in eine Textdatei?


10

Ich möchte meinen gesamten Zwischenablageverlauf einfügen, der aus Wörtern besteht, die während meiner Lesesitzungen kopiert wurden (Strg + C / nach Auswahl). Ich habe Programme wie Glippy und ClipIt installiert, konnte aber nicht herausfinden, wie alle Wörter eingefügt werden sollen. Wenn in diesen Programmen jemals eine solche Option vorhanden ist, kopiere ich sie sofort in eine einfache Textdatei und nicht wortweise. Kann mir jemand helfen?

Danke!


clipit speichert seinen Verlauf in ~ / .local / share / clipit / history, das Format hat einige Steuerzeichen, mit denen Sie sie wahrscheinlich analysieren können sed, aber das ist etwas kompliziert
bartekbrak

Antworten:


5

Mit diesem Befehl können Sie einige Zeichenfolgen in der Clipit-Verlaufsdatei anzeigen:

strings ~/.local/share/clipit/history

Aber es ist nicht der beste Weg. Die Ausgabe kann verstümmelt sein.


3

Es gibt ein Python-Skript für ClipIt. Führen Sie es so aus 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

habe das noch nicht ausprobiert, aber es sieht richtig aus und beantwortet die Frage (bezüglich Clipit)
user7610

2

Die neueste Version von Parcellite verfügt über einen Menüpunkt Speichern unter, wenn Sie auf das Symbol klicken. Dadurch werden alle Verlaufseinträge in einer Datei gespeichert. Wenn Sie mit der rechten Maustaste auf die Verlaufsliste klicken, wird alles eingefügt, wodurch die gesamte Verlaufsliste in die Zwischenablage verschoben wird. Die Einstellungen haben ein Trennzeichen "Alle einfügen", das am Ende jedes Eintrags eingefügt wird.

https://sourceforge.net/projects/parcellite/files/parcellite/parcellite-1.1.1/ ppa hier: https://launchpad.net/~rickyrockrat/+archive/ppa


1

Installieren Sie den Klipper Clipboard Manager von KDE Klipper installieren und verwenden Sie das folgende einfache Skript:

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

Hinweis: Dies verhält sich in Unity anscheinend nicht sehr gut. In anderen Desktop-Umgebungen als KDE kann Ihr Kilometerstand variieren .


FWIW, jemand, der Probleme mit Klipper und Unity hat: askubuntu.com/questions/439303/…
Sparhawk

0

Benutzer Parcellite, klicken Sie mit der linken Maustaste auf das Symbol "Löschen", wählen Sie aus, wie oft Sie möchten, danach "Zwischenablage bearbeiten" und kopieren Sie alles! Denken Sie daran, stellen Sie die Einstellungen ein: Verwenden Sie die Primärauswahl, um das Kopieren des Textes zu vereinfachen!


Hallo Acquarius! Vielen Dank für die Antwort. Wenn ich jedoch auf Zwischenablage bearbeiten klicke, wird nur das zuletzt kopierte Wort und nicht die gesamte Liste angezeigt. Vielleicht funktioniert es bei Ihnen anders? Vielleicht muss ich etwas in den Einstellungen konfigurieren.
Pandisvezia

Es gibt diese Datei ~ / .local / share / parcellite / history. Das Problem ist, dass sie nicht druckbare Zeichen für Zeilenumbrüche enthält. Sie können versuchen, sie automatisch zu ersetzen / zu löschen, aber jetzt wird es unordentlich ...
Aquarius Power

0

Geänderter Code von @ stepan-shamaiev für Python 3und ohne Einstellung des Trennzeichens:

#!/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('------------------')
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.