Bagaimana cara mengirim stdin ke clipboard?


44

Apakah ada fungsi di unix yang memungkinkan hal-hal berikut:

echo "Some Text" | copy-to-clipboard

maksudmu stdout?
phunehehe

3
itu benar-benar tergantung pada sisi mana Anda berdiri: P untuk perintah yang mengirimkannya ke clipboard, itu stdin.
Stefan

2
Orang yang sudah lama menggunakan Unix akan memberi tahu Anda bahwa lebih baik menulis <longTextFile straightToClipboard. Itu sama dengan cat longTextFile straightToClipboard, tetapi tidak perlu berjalan cat. Hanya sebuah pengamatan. Jangan ragu untuk mengabaikannya. Lihat Penggunaan Cat Award yang Tidak Berguna untuk beberapa latar belakang dan contoh jika Anda tertarik.
Mikel

Jawaban:


34

Ada beberapa alat yang mampu menulis ke clipboard; Saya menggunakan xsel. Diperlukan bendera untuk menulis ke pemilihan X primer ( -p), pemilihan sekunder ( -s), atau clipboard ( -b). Lulus -iakan memberitahu itu untuk membaca dari stdin, jadi Anda ingin:

$ echo "Some Text" | xsel -i -b

4
Satu lagi adalah xclip; itu menerima dari stdin secara default. Saya hanya menggunakannya karena itu adalah alat pertama yang saya pelajari.
Shawn J. Goff

@Shawn Posting sebagai jawaban yang terpisah :)
Michael Mrozek

Saya pikir -itidak diperlukan dalam kasus ini: man xsel1.2.0 mengatakan:and the selection is set from standard input if standard input is not a terminal (tty)
Ciro Santilli 新疆 改造 中心 法轮功 六四 事件

xsel tidak bekerja untuk saya (saya tidak tahu mengapa), tetapi xclip (sesuai jawaban lain)
markrian

11

Menggunakan xclip, seperti yang disarankan @Nicolas, jika Anda ingin menempelkan konten clipboard nanti, seperti menggunakan Ctrl + V, Anda dapat menggunakannya dengan cara ini:

$ echo "Some Text" | xclip -selection clipboard

1
Bukan mencoba menghidupkan kembali pertanyaan lama, tetapi jika Anda malas maka itu akan echo "Some Text" | xclip -sel cberhasil juga.
anonim memilih

9

Anda bisa menggunakan xsel

xsel < file 

10
Pertanyaannya adalah: Papan klip mana? Linux X server memiliki 3 (umumnya, hanya 2 yang digunakan) ... xsel menggunakan clipboard PRIMARY secara default .. Clipboard PRIMARY menendang secara otomatis setiap kali Anda memilih soemthing. Anda menempelkannya dengan menekan tombol tengah mouse .. Papan ketik Ctrl + C / Crtr + V disebut papan klip CLIPBOARD :) .. jadi jika Anda ingin menggunakan papan klip Ctrl + C / Ctrl + V dengan 'xsel', perintahnya adalah: xsel -ib <file-long-or-short("Lihat ma, tidak ada kucing!" :) ... atau jika Anda suka <file-long-or-short xsel -ib.. -i adalah default. -b adalah untuk tipe Ctrl + C / Ctrl + V clipBoard
Peter.O

terminal gnome. Diedit. @ jamespo - sepertinya ini tidak berhasil.
ripper234

bekerja untuk saya di gnome-terminal di ubuntu 10,04 menggunakan xsel di repo (tempel dengan tombol tengah)
jamespo

7

Di Mac OS X ada yang indah pbcopydan pbpasteperintah yang sangat membantu :)


0

Yang paling sederhana mungkin xclip:

$ echo "Some Text" | xclip

Kemudian tempel menggunakan tombol tengah mouse Anda.

Seperti xsel, biasanya tidak diinstal secara default, jadi Anda mungkin perlu menginstalnya ( sudo apt-get install xclipdi Debian / Ubuntu).


2
xclipmembutuhkan -selection clipboardopsi. Pilihan default per halaman manualnya adalah sesuatu yang lain.
Acumenus

0

xclipadalah cara yang baik untuk pergi seperti dijawab oleh @Nicolas Raoul tetapi ketika memipakan sesuatu yang berisi baris baru ke clipboard, seperti pwd, baris baru juga disalin. Dalam beberapa situasi mungkin diinginkan, tetapi kebanyakan orang tidak menginginkan baris baru.

Solusinya adalah:

echo -n $(pwd) | xclip -selection clipboard

( -nmenghapus baris baru dari argumen yang digaungkan)

atau:

printf %s $(pwd) | xclip -selection clipboard

The ""sekitar $(pwd)mungkin diperlukan tetapi bekerja dengan dan tanpa di ubuntu dengan bash.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.