1303 Stimmen

Pipe in/aus der Zwischenablage in einem Bash-Skript

Ist es möglich, Pipe zu/von der Zwischenablage in Bash?

Egal, ob es sich um Piping zu/von einem Geräte-Handle oder um eine Hilfsanwendung handelt, ich kann nichts finden.

Zum Beispiel, wenn /dev/clip war ein Gerät, das mit der Zwischenablage verbunden war, was wir tun konnten:

cat /dev/clip        # Dump the contents of the clipboard
cat foo > /dev/clip  # Dump the contents of "foo" into the clipboard

1120voto

lhunath Punkte 111281

Es gibt eine Vielzahl von Klemmbrettern, mit denen Sie zu tun haben könnten. Ich nehme an, Sie sind wahrscheinlich ein Linux-Benutzer, der Dinge in die primäre Zwischenablage von X Windows ablegen möchte. Normalerweise hat die Zwischenablage, die Sie ansprechen wollen, ein Dienstprogramm, mit dem Sie sie ansprechen können.

Im Fall von X gibt es xclip (und andere). xclip -selection c sendet Daten an die Zwischenablage, die mit Ctrl + C , Ctrl + V in den meisten Anwendungen.

Wenn Sie mit Mac OS X arbeiten, gibt es pbcopy . Z.B., cat example.txt | pbcopy

Wenn Sie sich im Linux-Terminalmodus befinden (kein X), dann schauen Sie in gpm o Bildschirm die eine Zwischenablage hat. Versuchen Sie den Befehl Screen readreg .

Unter Windows 10+ oder Cygwin, verwenden Sie /dev/clipboard o clip .

361voto

doug Punkte 3750

Stellen Sie sicher, dass Sie Folgendes verwenden alias xclip="xclip -selection c" sonst können Sie nicht mehr einfügen mit Ctrl + v .

Beispiel: Nach der Ausführung echo -n test | xclip , Ctrl + v wird eingefügt test

248voto

tleb Punkte 4090

Installieren Sie

# You can install xclip using `apt-get`
apt-get install xclip

# or `pacman`
pacman -S xclip

# or `dnf`
dnf install xclip

Wenn Sie keinen Zugang haben zu apt-get noch pacman noch dnf Die Quellen sind verfügbar unter sourceforge .

Einrichtung

Bash

Sur ~/.bash_aliases , hinzufügen:

alias setclip="xclip -selection c"
alias getclip="xclip -selection c -o"

_Vergessen Sie nicht, Ihre neue Konfiguration zu laden mit . ~/.bash_aliases oder durch einen Neustart Ihres Profils._

Fisch

Sur ~/.config/fish/config.fish , hinzufügen:

abbr setclip "xclip -selection c"
abbr getclip "xclip -selection c -o"

Vergessen Sie nicht, Ihre Fish-Instanz neu zu starten, indem Sie Ihr Terminal neu starten, damit die Änderungen wirksam werden.

Verwendung

Sie können nun Folgendes verwenden setclip y getclip z.B:

$ echo foo | setclip
$ getclip
foo

191voto

jtruelove Punkte 3106

Unter macOS verwenden Sie die integrierte pbcopy y pbpaste Befehle.

Wenn Sie zum Beispiel Folgendes ausführen

cat ~/.bashrc | pbcopy

den Inhalt des ~/.bashrc Datei zum Einfügen mit dem Befehl Cmd + V Abkürzung.

Um die aktuelle Zwischenablage in einer Datei zu speichern, leiten Sie die Ausgabe um pbpaste in eine Datei:

pbpaste > my_clipboard.txt

69voto

Evan Conrad Punkte 2897

Antwort 2018

Verwenden Sie Zwischenablage-Cli . Es funktioniert mit macOS, Windows, Linux, OpenBSD, FreeBSD und Android ohne echte Probleme.

Installieren Sie es mit:

npm install -g clipboard-cli

Dann können Sie das tun:

echo foo | clipboard 

Wenn Sie möchten, können Sie einen Alias für cb indem Sie Folgendes in Ihr .bashrc , .bash_profile o .zshrc :

alias cb=clipboard

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X