Bash ස්ක්‍රිප්ටයේ ඇති ක්ලිප් පුවරුවට / සිට පයිප්ප


983

Bash හි ඇති ක්ලිප් පුවරුවට / සිට පයිප්ප දැමිය හැකිද?

එය උපාංග හසුරුවකට / සිටුවීමට හෝ සහායක යෙදුමක් භාවිතා කිරීමට මට කිසිවක් සොයාගත නොහැක.

උදාහරණයක් ලෙස, /dev/clipක්ලිප් පුවරුවට සම්බන්ධ වන උපාංගයක් නම් අපට කළ හැක්කේ:

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

4
මම :%y+vim හි භාවිතා කර ඇති අතර, එය "+" ලේඛනයේ (X ක්ලිප්බෝඩ්) ඇති සියලුම පේළි "යැං (පිටපත් කරන්න)" සඳහා vim-speak වේ PRIMARY. ඔබට %නිශ්චිත වීමට අවශ්‍ය නම් ඔබට පරාසයක් සමඟ ප්‍රතිස්ථාපනය කළ හැකිය. නමුත් අවවාද තුනක් තිබේ: 1. දැන්, ඔබට ඕනෑම පෙළක් ගොනුවකට පිටපත් කිරීමට පෙර සුරැකිය යුතුය. මෙය xclipපිළිතුරු වල සඳහන් විධානයට පටහැනිය . 2. ඔබ දැනටමත් vim කරන්නේ කෙසේදැයි නොදන්නේ නම්, මෙය වෙහෙසකාරී විය හැකිය. 3. ඔබට මෙය කළ හැක්කේ vim සම්පාදනය කිරීමේදී කිසියම් අංගයක් සක්‍රීය කර ඇත්නම් පමණි. ඔබ GVim ස්ථාපනය කරන්නේ නම්, එය පෙරනිමියෙන් GUI සහ vim හි පර්යන්ත අවස්ථා දෙකෙහිම සක්‍රීය කළ යුතුය.
බ්‍රැඩන් හොඳම

1
@BradenBest ඔබ මෙය පිළිතුරක් ලෙස තැබිය යුතුය. මම NIX පරිසරයක සිටින අතර ස්ථාපනය කිරීමට නොහැකි විය xclip. ඔබේ පිළිතුර චාම් එකක් වගේ වැඩ කළා.
හැන්කා

@ හෑන්කා හරි, මම පිළිතුරක් පළ කළා . ඔබ සිතන දේ මට කියන්න.
බ්‍රැඩන් හොඳම

Rad බ්‍රැඩන්බෙස්ට් එහි ඉතා සවිස්තරාත්මක පිළිතුරකි. මම එකකට කැමතියි :%y+නමුත් හරි, ඔබ සියලු කඳවුරු ආවරණය කර ඇත! හොඳ එකක්.
හැන්කා

තවත් විකල්පයක්: කුඩා පර්ල් ස්ක්‍රිප්ට් එකක් භාවිතා කිරීම: ස්ථාපනය අවශ්‍ය නොවේ. බලන්න මගේ පිළිතුර පහත .
VonC

Answers:


890

ඔබට ගනුදෙනු කළ හැකි ක්ලිප්බෝඩ් විශාල ප්‍රමාණයක් තිබේ. මම බලාපොරොත්තු වන්නේ ඔබ X වින්ඩෝස් ප්‍රාථමික ක්ලිප්බෝඩ් එකට දේවල් දැමීමට අවශ්‍ය ලිනක්ස් පරිශීලකයෙකු විය හැකිය. සාමාන්‍යයෙන්, ඔබට කථා කිරීමට අවශ්‍ය ක්ලිප්බෝඩ් එකෙහි ඔබට එය සමඟ කතා කිරීමට ඉඩ සලසන උපයෝගීතාවයක් ඇත.

X සම්බන්ධයෙන් ගත් කල, xclip(සහ වෙනත්) ඇත. xclip -selection cසමඟ වැඩ කරන අලවයි දත්ත යැවීමට ඇත Ctrl + C, Ctrl + Vබොහෝ යෙදුම් ගැන.

ඔබ මැක් ඕඑස් එක්ස් හි pbcopyසිටී නම් , එහි තිබේ . උදාcat example.txt | pbcopy

ඔබ ලිනක්ස් පර්යන්ත මාදිලිය (කිසිදු X) ඉන්නේ නම් සොයා බැලීමට gpmහෝ තිරය සඳහා රැඳවුම් පුවරුවේ ඇති. screenවිධානය උත්සාහ කරන්නreadreg .

වින්ඩෝස් 10+ හෝ සිග්වින් යටතේ, භාවිතා කරන්න /dev/clipboardහෝ clip.



24
වින්ඩෝස් හි, /dev/clipboardMsys / MinGW bash shells සඳහාද ක්‍රියා කරයි
Mihai Rotaru

71
xclip -selection cබොහෝ යෙදුම්වල ^ C, ^ V සමඟ ක්‍රියා කරන ක්ලිප් පුවරුවට දත්ත යවන බව සලකන්න
ක්ලාස් වෑන් ෂෙල්වන්

32
නව වින්ඩෝස් අනුවාද වල ඔබට මේ ආකාරයට භාවිතා කළ හැකිය clip:dir | clip
maep

11
GNU / Linux වැනි උපකරණයක් නොමැති වීම කනගාටුවට කරුණක් වන /dev/clipboardඅතර අවම වශයෙන් කුබුන්ටු වල පෙරනිමියෙන් අතුරුදහන් වූ xpm හෝ gpm ස්ථාපනය කිරීමට බල කරයි (වෙනත් බොහෝ ඩිස්ට්‍රෝස් වලද මම අනුමාන කරමි) .
හායි-ඒන්ජල්

294

ඔබ alias xclip="xclip -selection c" වෙනත් ආකාරයකින් භාවිතා කරන බවට වග බලා ගන්න ඔබට එය වෙනත් ස්ථානයක නැවත ඇලවීමට Ctrl+ භාවිතා කළ නොහැක v.

echo test | xclip    

Ctrl+v === test


1
එම විධාන තර්කය නොමැතිව යමෙකු එය ඇලවීම කරන්නේ කෙසේද?
ජෝනා

15
xclip -selection clipboard -o
ඩග්

34
මම ඔක්ස් සහ ලිනක්ස් අතර නැවත නැවතත් ඉදිරියට යන බැවින් මගේ තිත් ලිපිගොනු වල පහත සඳහන් දෑ ඇත. alias pbcopy="xclip -selection c" alias pbpaste="xclip -selection clipboard -o" උපකාරවත් වන බලාපොරොත්තුව.
ඩග්

15
@ApockofFork, xclipනව රේඛාවක් එක් නොකරයි echo. උත්සාහ කරන්න printf test | xclip -i -selection clipboard. ( printfඔබ ලියන්නේ නැත්නම් නව රේඛාවක් එක් නොකරයි 'test\n'.)
ඩේවිඩ් එක්ස්

7
හෝ echo -nඒ වෙනුවට භාවිතා කරන්න printf.
ක්‍රිස්ටියන් පීට්ස්

189

ස්ථාපනය කරන්න

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

# or `pacman`
pacman -S xclip

# or `dnf`
dnf install xclip

ඔබට ප්‍රවේශය apt-getනොමැති pacmanනම් හෝ dnf, ප්‍රභවයන් ප්‍රභව බලයෙන් ලබා ගත හැකිය .

පිහිටුවීම

බාෂ්

තුළ ~/.bash_aliases, එකතු කරන්න:

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

. ~/.bash_aliasesඔබගේ පැතිකඩ භාවිතා කර හෝ නැවත ආරම්භ කිරීමෙන් ඔබගේ නව වින්‍යාසය පූරණය කිරීමට අමතක නොකරන්න .

මාළු

තුළ ~/.config/fish/config.fish, එකතු කරන්න:

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

අදාළ වන වෙනස්කම් සඳහා ඔබේ පර්යන්තය නැවත ආරම්භ කිරීමෙන් ඔබේ මාළු අවස්ථාව නැවත ආරම්භ කිරීමට අමතක නොකරන්න.

භාවිතය

ඔබට දැන් භාවිතා කළ හැකි setclipඅතර getclip, උදා:

$ echo foo | setclip
$ getclip
foo

3
අනෙක් සියලුම ඩිස්ට්‍රෝ සඳහා: ඔබට මූලාශ්‍රය sourceforge.net/projects/xclip
Scz

+1 හොඳම විසඳුම! ආරුක්කුවේ , sudo pacman -S xclip. නමුත් .bashrcඑය හොඳම ස්ථානය නොවන බව සලකන්න . නිසි bashrc, bash_aliases සහ .profile ලිපිගොනු සහ එක් එක් bash හසුරුවන ආකාරය පිළිබඳව එන්ඩූසර් කියවීමට මම නිර්දේශ කරමි. ඉඟිය: ඒ වෙනුවට .bash_aliases තුළට දමන්න.
eduncan911

1
ස්තූතියි @ eduncan911! :) pacmanඇසුරුම් කළමණාකරු භාවිතා කිරීමේ විකල්පය එකතු කර .bashrcයෝජනාව ඉවත් කරන ලදි . .bash_aliasesවඩා අනුවර්තනය වී ඇති බව මම දනිමි , නමුත් අවසාන ප්‍රති result ලය සමාන වේ ( එය පවතින්නේ නම් .bashrcසරලව අවශ්‍ය වේ .bash_aliases). මිනිසුන්ට අවුල් සහගත පද්ධතියක් අවශ්‍ය නම්, ඔවුන්ට එකක් තිබිය යුතුය. :)
tleb කරන්න

Lad එලාඩ් ටබාක් සතුටුයි.
tleb

1
ඔබ නිවැරදි ය. මගේ .bashrcමූලාශ්‍ර .bash_aliasesඅවසානයේ. ;) මම මෙම පැරණි සම්මුතිය අනුගමනය කරමි, එය ආරුක්කු , උබුන්ටු / ඩේබියන්, රාස්ප්බෙරි ප්‍රභේද, මැකෝස් / ඕඑස්එක්ස් සහ වින්ඩෝස් බෑෂ්: stefaanlippens.net/my_bashrc_aliases_profile_and_other_stuff හරහා 100% ක්ම අනුකූල වේ. මම ස්පර්ශ. එය තරමක් හොඳයි: github.com/eduncan911/dotfiles
eduncan911

144

මැකෝස් මත බිල්ට් pbcopyසහ pbpasteවිධාන භාවිතා කරන්න.

උදාහරණයක් ලෙස, ඔබ දුවන්නේ නම්

cat ~/.bashrc | pbcopy

+ කෙටිමඟ ~/.bashrcසමඟ ඇලවීම සඳහා ගොනුවේ අන්තර්ගතය ලබා ගත හැකිය .Cmdv



25

xsel on Debian / Ubuntu / Mint

# append to clipboard:
cat 'the file with content' | xsel -ib

# or type in the happy face :) and ...
echo 'the happy face :) and content' | xsel -ib

# show clipboard
xsel -b

# Get more info:
man xsel

ස්ථාපනය කරන්න

sudo apt-get install xsel

මෙය වෙනස් වන්නේ echo "foo" | xclip -selection cකෙසේද?
Léo Léopold Hertz 준영

මේ පිළිබඳව යම් පිළිතුරු තිබෙනවා , උබුන්ටු අහන්න පිළිතුර ප්රධාන වශයෙන්, නමුත් xselසහ xclipහැර සෑම ආකාරයකින්ම සමාන වේ xclipනම කියවිය හැකි / ලිවීම් ගොනු, නමුත් xselඔබ ගොනුව ප්රවේශ කිරීමට අවශ්ය නම් ෂෙල් හරවා යැවීමේ අවශ්ය වේ.
කොලින් ඩී බෙනට්

xselස්ක්‍රිප්ට් වලින් මනාව ක්‍රියා කරන අතර, xclip ක්‍රියාත්මක වන්නේ ක්ෂණිකව පමණි. එයට හේතුව කුමක්දැයි විශ්වාස නැත.
එන්වීආර්එම්

17

ඇවැත්නි, මෙම ප්‍රශ්නයට පිළිතුරු කීයක් තිබේදැයි මට විශ්වාස කළ නොහැක. මම ඒවා සියල්ලම අත්හදා බැලූ බව පැවසිය නොහැක, නමුත් මම ඉහළම 3 හෝ 4 උත්සාහ කර ඇති අතර ඒ කිසිවක් මා වෙනුවෙන් වැඩ නොකරයි. මට වැඩ කළේ ඩග් නම් පරිශීලකයෙකු විසින් ලියන ලද එක් විවරණයක ඇති පිළිතුරකි. එය එතරම් ප්‍රයෝජනවත් බව මට පෙනී ගිය හෙයින්, පිළිතුරකින් නැවත කියවීමට මම තීරණය කළෙමි.

Xcopy උපයෝගීතාව ස්ථාපනය කරන්න සහ ඔබ පර්යන්තයේ සිටින විට ආදානය:

පිටපත් කරන්න

Thing_you_want_to_copy|xclip -selection c

අලවන්න

myvariable=$(xclip -selection clipboard -o)

Pbpaste සහ pbcopy නිර්දේශිත පිළිතුරු රාශියක් මම දුටුවෙමි. ඔබ එම උපයෝගිතා වලට සම්බන්ධ වී ඇති නමුත් යම් හේතුවක් නිසා ඒවා ඔබේ ගබඩාවේ නොමැති නම්, ඔබට සෑම විටම xcopy විධානයන් සඳහා අන්වර්ථයක් සාදා ඒවා pbpaste සහ pbcopy ලෙස හැඳින්විය හැකිය.

alias pbcopy="xclip -selection c" 
alias pbpaste="xclip -selection clipboard -o" 

එබැවින් එය මේ ආකාරයෙන් පෙනෙනු ඇත:

Thing_you_want_to_copy|pbcopy
myvariable=$(pbpaste)

නියමයි, ඔබේ අන්වර්ථ කොටස මැකෝස් වලට හොඳින් අනුරූප වේ.
මීඩෝ මෆින්ස්

17

2018 පිළිතුර

ක්ලිප්බෝඩ්-ක්ලි භාවිතා කරන්න . එය සැබෑ ගැටළු නොමැතිව මැකෝස්, වින්ඩෝස්, ලිනක්ස්, ඕපන්බීඑස්ඩී, ෆ්‍රීබීඑස්ඩී සහ ඇන්ඩ්‍රොයිඩ් සමඟ ක්‍රියා කරයි.

මෙය සමඟ ස්ථාපනය කරන්න:

npm install -g clipboard-cli

එවිට ඔබට කළ හැකිය:

echo foo | clipboard 

ඔබට අවශ්ය නම්, ඔබ නොහොත් හැකි කිරීමට cbඔබේ පහත සඳහන් දැමීම මගින් .bashrc, .bash_profileහෝ .zshrc:

alias cb=clipboard

2
එය ආරක්ෂිත npmපැකේජයක් බව ඔබට විශ්වාසද ?
ජොනී

3
@ ස්ටාස්, මම එසේ බලාපොරොත්තු වෙමි, එය සෑදී ඇත්තේ වඩාත්ම සශ්‍රීක නෝඩ් දායකයා වන සින්ඩ්‍රෙසෝර්හස් ( github.com/sindresorhus ) විසිනි. Ava පරීක්ෂණ පුස්තකාලය, xo linter, Yeoman සහ තවත් බොහෝ ව්‍යාපෘති සඳහා ඔහු වගකිව යුතුය. අන්තර්ජාලය තුළ ජේඑස් භාවිතා කරන සෑම වෙබ් අඩවියකම පාහේ ඔහුගේ කේතය සාමූහිකව තබන මෙවැනි කුඩා පුස්තකාල ගණනාවකට ඔහු වගකිව යුතුය. එයින් කියවෙන්නේ ඔහුට සම්මුතියක් ඇති කළ නොහැකි බවයි. ඔහුගේ ගබඩාවල ඇති ඇස් ප්‍රමාණය සහ ඔහුගේ කීර්තිය නිසා එය බොහෝ අහඹු එන්පීඑම් ගබඩාවලට වඩා අඩුය.
ඉවාන් කොන්රාඩ්

සිසිල්! Xclip ක්‍රියා නොකරන උබුන්ටු ග්නූ / ලිනක්ස් හි වැඩ කිරීම.
කෙවින් බුච්

14

ලිනක්ස් සඳහා වින්ඩෝස් උප පද්ධතියේ ඔබට clip.exe සමඟ ක්ලිප් පුවරුවට පිටපත් කළ හැකිය.

cat file | clip.exe

|පයිප්ප විධානය භාවිතා කිරීමට මතක තබා ගන්න . එය ක්‍රියාත්මක නොවන බැවින් >විධානයක් නොවේ.


11

බහුවිධ වේදිකාවල වැඩ කරන ක්ලිප්බෝඩ් කියවීම සඳහා බාෂ් ස්ක්‍රිප්ට් භාවිතා කිරීමට මෙන්න මෙන්න. ඔබ ක්‍රියාකාරීත්වය එකතු කරන්නේ නම් කරුණාකර මෙහි පිටපත සංස්කරණය කරන්න (උදා: තවත් වේදිකා).

#!/bin/bash
# WF 2013-10-04
# multi platform clipboard read access
# supports
#   Mac OS X
#   git shell / Cygwin (Windows)
#   Linux (e.g. Ubuntu)

#
# display an error
#
error() {
  echo "error: $1" 1>&2
  exit 1
}

#
# getClipboard
#
function getClipboard() {
 os=`uname`
      case $os in 
        # git bash  (Windows)
        MINGW32_NT-6.1)
          cat /dev/clipboard;;
        # Mac OS X
        Darwin*)
          pbpaste;;  
        # Linux 
        Linux*)
          # works only for X clipboard - a check that X is running might be due
          xclip -o;;
        *)
          error "unsupported os $os";;
      esac
}

tmp=/tmp/clipboard$$
getClipboard >$tmp
cat $tmp
# comment out for debugging
rm $tmp

බ ru, මෙය සැබවින්ම ක්‍රියාත්මක වන්නේ ඇයි මේ පිළිතුර නොවන්නේ?
255.tar.xz

10

වින්ඩෝස් (Cygwin සමග) උත්සාහ කරන්න cat /dev/clipboardහෝ echo "foo" > /dev/clipboardසඳහන් පරිදි මෙම ලිපිය.


1
පරිශීලක වෙනම විවරණයක සඳහන් කර ඇති පරිදි, වින්ඩෝස් හි නවතම අනුවාදයන් (මට වින් 10 සඳහා පමණක් තහවුරු කළ හැකිය) සරලවම නල මාර්ගයට පිවිසිය හැකිය clip. මම msysgit 1.9.5 භාවිතා කරන අතර මෙය ක්‍රියාත්මක විය.
ෂෝන් අර්කාර්ට්

echo "foo" > /dev/clipboardනව රේඛා මුළුමනින්ම විනාශ කරන බවක් පෙනේ (\ r \ n \ n දෙයක් නොව සම්පූර්ණයෙන්ම නැති වී ඇත)
user1529413

9

මැක් සඳහා පමණි:

echo "Hello World" | pbcopy
pbpaste

මේවා පිහිටා ඇති /usr/bin/pbcopyඅතර /usr/bin/pbpaste.


8

ලිනක්ස් හි විවිධ ක්ලිප්බෝඩ් තිබේ; X සේවාදායකයට එකක් තිබේ, කවුළු කළමනාකරුට තවත් එකක් තිබිය හැක. සම්මත උපාංගයක් නොමැත.

ඔහ්, ඔව්, පාබල මත, තිරය වැඩසටහන එහි ම අලවන්න මෙන්ම ඇති ලෙස වැනි සමහර වෙනත් යෙදුම් කරන්න හැරදමයි හා vi .

X හි, ඔබට xclip භාවිතා කළ හැකිය .

හැකි වෙනත් පිළිතුරු සඳහා ඔබට මෙම නූල පරීක්ෂා කළ හැකිය: http://unix.derkeiler.com/Newsgroups/comp.unix.shell/2004-07/0919.html


2
/ Dev / clip නිර්මාණය කිරීම කෙනෙකුට හොඳ ව්‍යාපෘතියක් වනු ඇති බව පෙනේ.
ටෙඩ්

2
බහු ක්ලිප්බෝඩ් ගැන මම හොඳින් දනිමි. මෙය මගේ ප්‍රශ්නයට පිළිතුරු දීමට තවත් අපහසු වන්නේ කෙසේද?
moinudin

ක්ලිප්බෝඩ් ප්‍රමිතිගත කර ඇත්නම් එය අර්ථවත් වනු ඇත, ඔබට ඒවාට පිවිසීමට / dev / clip1, / ​​dev / clip2 .. / dev / clip <n> භාවිතා කළ හැකි නම් බොහෝ විට හානියක් නොවනු ඇත, එකම ගැටළුව වන්නේ ඒවා පරිශීලක විශේෂිත සහ උපාංග පද්ධතිය පුරා විහිදේ. නමුත් ඔබ ප්‍රවේශ වන UID අනුව ආවරණ කරන කර්නල් උපාංග ධාවකයක් සාදන්නේ නම්, එය අපේක්ෂිත පරිදි ක්‍රියා කළ යුතුය.

5

මම හොඳ සඳහනක් සොයාගෙන ඇත: /unix/69111/

මගේ නඩුවේදී මම ක්ලිප් පුවරුවේ අන්තර්ගතය ඇලවීමටත් එහි අලවා ඇති දේ බැලීමටත් කැමතියි, එබැවින් මම teeගොනු විස්තරයක් සහිත විධානය ද භාවිතා කළෙමි :

echo "just a test" | tee >(xclip -i -selection clipboard)

>()යනු ක්‍රියාවලි ආදේශනයකි. වරහන් තුළ ඇති වැඩසටහනේ සම්මත ආදානයට සම්බන්ධ කර ඇති ගොනු විස්තර කරන්නෙකු වෙත මාර්ගය බැෂ් මඟින් ප්‍රතිස්ථාපනය කරයි.

මෙම teeවිධානය "නල එහි අන්තර්ගතය" ඔබ ඉඩ ඔබගේ විධානය හැඳි සහ සම්මත ප්රතිදානය "stdout" පරීක්ශා කර බලන්න

ඔබට ක්ලිප්බෝඩ් එක මත ලිවීමට සහ ලිවීමට අන්වර්ථ නාම නිර්මාණය කළ හැකි අතර, ඔබ MAC හි සිටින ආකාරයට “pbcopy” සහ “pbpaste” භාවිතා කිරීමට ඉඩ දෙයි. මගේ නඩුවේදී, මම zsh භාවිතා කරන විට මෙය මගේ අන්වර්ථ ගොනුවේ ඇත:

(( $+commands[xclip] )) && {
    alias pbpaste='xclip -i -selection clipboard -o'
    alias pbcopy='xclip -selection clipboard'
}

මෙම (( $+command[name] ))zsh පරීක්ෂණ විධානය "නම" ඔබේ පද්ධතිය මත ස්ථාපනය කරන්නේ නම්, එසේ නම් යොමුවීම් දෙකම වර්ගීකරණය කරනු ලබයි {}. මෙම &&ද්විමය වන අතර, ඔබ xclip ඇති නම්, එවිට එම අන්වර්ථ කට්ටලයක් වනු ඇත එකල ආ නම්, ඒ නිසා.

echo "another test" | tee >(pbcopy)

ඔබගේ ක්ලිප්බෝඩ් අන්තර්ගතය ලබා ගැනීම සඳහා ටයිප් කරන්න:

pbpaste | "any-command-you-need-here"

5

වින්ඩෝස් (සිග්වින්) හි ක්ලිප්බෝඩ් එකට පිටපත් කර අලවන්න:

බලන්න:

$ clip.exe -?

CLIP
Description:
    Redirects output of command line tools to the Windows clipboard.
    This text output can then be pasted into other programs.
Parameter List:
/?                  Displays this help message.
Examples:
DIR | CLIP          Places a copy of the current directory
                        listing into the Windows clipboard.
CLIP < README.TXT   Places a copy of the text from readme.txt
                        on to the Windows clipboard.

Getclip (එය Shift+ Ins! වෙනුවට භාවිතා කළ හැකිය ) සහ putclip (echo oaeuoa | putclip.exe එය ක්ලිප් එකට දැමීමට) පවතී.


4

මෙය සරල පයිතන් පිටපතකි, එය ඔබට අවශ්‍ය දේ කරයි:

#!/usr/bin/python

import sys

# Clipboard storage
clipboard_file = '/tmp/clipboard.tmp'

if(sys.stdin.isatty()): # Should write clipboard contents out to stdout
    with open(clipboard_file, 'r') as c:
        sys.stdout.write(c.read())
elif(sys.stdout.isatty()): # Should save stdin to clipboard
    with open(clipboard_file, 'w') as c:
        c.write(sys.stdin.read())

මෙය ඔබගේ මාර්ගයේ කොතැනක හෝ ක්‍රියාත්මක කළ හැකි ලෙස සුරකින්න (මම එය /usr/local/bin/clipසුරකින ලදි. ඔබේ ක්ලිප් පුවරුවට සුරැකීමට ඔබට පයිප්ප දැමිය හැකිය ...

echo "Hello World" | clip

ඔබේ ක්ලිප්බෝඩ් එකේ ඇති දේ වෙනත් වැඩසටහනකට සම්බන්ධ කළ හැකිය ...

clip | cowsay
 _____________
< Hello World >
 -------------
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||

එය තනිවම ක්‍රියාත්මක කිරීමෙන් ක්ලිප්බෝඩ් එකේ ඇති දේ ප්‍රතිදානය කරයි.


ඔබ තනි පරිගණකයක සිටින විට මෙය ක්‍රියාත්මක වන නමුත් පරිගණක අතර දේවල් පිටපත් කිරීමට ඔබට ඉඩ නොදේ.
චාල්ස් ප්ලේගර්

පෙනෙන්නේ `echo str> tmpfile` මිස ක්ලිප්බෝඩ් cat tmpfileක්‍රියාකාරිත්වය නොවේ. // හෝර්ටා පිළිතුරු දෙන ආකාරයටම.
yurenchen

මෙය ක්ලිප්බෝඩ් විචල්‍යය සකසා ඇති බවක් නොපෙනේ, එබැවින් මට වෙනත් යෙදුමක අන්තර්ගතය ඇලවිය නොහැක - එය සැබෑ ක්ලිප්බෝඩ් නොවේ!
ජෙනා


3

pbcopy OSX හි ඉදිකර ඇත:

.Bash_profile හි අන්තර්ගතය පිටපත් කිරීම:

cat ~/.bash_profile | pbcopy

2

මම මීට වසර ගණනාවකට පෙර ලියූ වින්ඩෝස් වැඩසටහන් කිහිපයක්. ඒවා ඔබට ක්ලිප් පුවරුව විසි කිරීමට, තල්ලු කිරීමට, එකතු කිරීමට සහ මුද්‍රණය කිරීමට ඉඩ දෙයි. එය මේ ආකාරයට ක්‍රියා කරයි:

dumpclip | perl -pe "s/monkey/chimp/g;" | pushclip

එයට ප්‍රභව කේතය ඇතුළත් වේ: cmd_clip.zip


2

ක්‍රම කිහිපයක් තිබේ. සඳහන් කර ඇති සමහර ක්‍රම අතර (මම හිතන්නේ) tmux, screen, vim, emacs සහ shell. මම ඉමාක්ස් හෝ තිරය නොදනිමි, එබැවින් මම අනෙක් තුන ඉක්මවා යන්නෙමි.

Tmux

X තේරීමක් නොවන අතර, tmux හි පිටපත් ප්‍රකාරයක් ඇත prefix-[( prefixඑය Ctrl+ හරහා )B පෙරනිමියෙන්). මෙම මාදිලිය සඳහා භාවිතා කරන බෆරය tmux සඳහා වෙනම හා සුවිශේෂී වේ, එමඟින් හැකියාවන් කිහිපයක් විවෘත වන අතර නිවැරදි අවස්ථාවන්හිදී X තේරීම් වලට වඩා එය බහුකාර්ය කරයි.

මෙම ප්‍රකාරයෙන් පිටවීමට, පහර දෙන්න q; සැරිසැරීමට, ඔබේ vimහෝ emacsබන්ධනය භාවිතා කරන්න (පෙරනිමි = vim), එබැවින් hjklචලනය v/V/C-vසඳහා, අක්ෂර / රේඛාව / වාරණ තේරීම යනාදිය සඳහා. ඔබේ තේරීම ඇති විට, ඔබන්නEnter පිටපත් කිරීමට සහ ප්‍රකාරයෙන් පිටවීමට ඔබන්න.

මෙම බෆරයෙන් ඇලවීමට, භාවිතා කරන්න prefix-].

ෂෙල්

ඕනෑම ස්ථාපනය X11: පෙරනිමියෙන් වැඩසටහන් දෙකක් සමඟ එන්න පෙනේ xclipසහ xsel(ටිකක් එය ද යන දෙකම සමඟ එන ආකාරය වැනි startxහා xinit). අනෙක් බොහෝ පිළිතුරු වල සඳහන් වන අතර xclip, xselඑහි සංක්ෂිප්තතාවයට මම ඇත්තෙන්ම කැමතියි , එබැවින් මම ආවරණය කිරීමට යන්නෙමිxsel .

Xsel වෙතින් (1x) :

ආදාන විකල්ප

-a, --append

තේරීමට සම්මත ආදානය එකතු කරන්න. ගම්‍ය වේ -i .

-f, - Follow

සම්මත ආදානය වර්ධනය වන විට තේරීමට එකතු කරන්න. ගම්‍ය වේ -i .

-i, --input

තේරීමට සම්මත ආදානය කියවන්න.

නිමැවුම් විකල්ප

-o, --output

තේරීම සම්මත ප්‍රතිදානය වෙත ලියන්න.

ක්‍රියා විකල්ප

-c, - පැහැදිලි

තේරීම ඉවත් කරන්න. සියලුම ආදාන විකල්පයන් අභිබවා යයි.

-d, --delete

වත්මන් තේරීම මකා දැමීමට ඉල්ලන්න. මෙය තේරීම නිෂ්කාශනය කරනවා පමණක් නොව, තෝරාගත් අන්තර්ගතය මකා දැමිය යුතු බව තේරීම පවතින වැඩසටහනට ඉල්ලීමක් කරයි. සියලුම ආදාන විකල්පයන් අභිබවා යයි.

තෝරා ගැනීමේ විකල්ප

-p, - ප්‍රාථමික

PRIMARY තේරීම මත ක්‍රියාත්මක වේ (පෙරනිමිය).

-s, - තත්පර

දෙවන තේරීම මත ක්‍රියාත්මක වන්න.

-b, --clipboard

CLIPBOARD තේරීම මත ක්‍රියාත්මක වන්න.

ඔබ දැනගත යුතු සියල්ල එයයි. p(හෝ කිසිවක් නැත) සඳහා PRIMARY, sසඳහා SECONDARY, bසඳහා CLIPBOARD, oසඳහා.

උදාහරණය: fooTTY වෙතින් ප්‍රතිදානය පිටපත් කර දෝෂ වාර්තාවක් සඳහා වෙබ් පිටුවකට ඇලවීමට මට අවශ්‍ය යැයි පවසන්න . මෙය සිදු කිරීම සඳහා, TTY / X සැසිවාරයට / පිටපත් කිරීම වඩාත් සුදුසු වේ. එබැවින් ප්රශ්නය බවට පත්වේ වන්නේ TTY වෙතින් ක්ලිප් පුවරුවට ප්‍රවේශ වන්නේ කෙසේද යන්නයි.

මෙම උදාහරණය සඳහා, අපි X සැසිය ප්‍රදර්ශනය කර ඇති බව උපකල්පනය කරමු :1.

$ foo -v
Error: not a real TTY
details:
blah blah @ 0x0000000040abeaf4
blah blah @ 0x0000000040abeaf8
blah blah @ 0x0000000040abeafc
blah blah @ 0x0000000040abeb00
...
$ foo -v | DISPLAY=:1 xsel -b # copies it into clipboard of display :1

එවිට මට Ctrl-Vඑය සුපුරුදු පරිදි ආකෘතියට කළ හැකිය.

දැන් කියන්න, උපකාරක අඩවියේ සිටින අයෙක් ගැටලුව විසඳීම සඳහා ධාවනය කිරීමට මට විධානයක් ලබා දෙයි. එය සංකීර්ණ හා දිගු ය.

$ DISPLAY=:1 xsel -bo
sudo foo --update --clear-cache --source-list="http://foo-software.com/repository/foo/debian/ubuntu/xenial/164914519191464/sources.txt"
$ $(DISPLAY=:1 xsel -bo)
Password for braden:
UPDATING %%%%%%%%%%%%%%%%%%%%%%% 100.00%
Clearing cache...
Fetching sources...
Reticulating splines...
Watering trees...
Climbing mountains...
Looking advanced...
Done.
$ foo
Thank you for your order. A pizza should arrive at your house in the next 20 minutes. Your total is $6.99

පීසා ඇණවුම් කිරීම විධාන රේඛාවේ use ලදායී භාවිතයක් සේ පෙනේ.

... ඉදිරියට.

විම්

+clipboard(මෙය වැදගත්! ඔබේ පරීක්ෂා කරන්න vim --version) සමඟ සම්පාදනය කර ඇත්නම් , Vim හට X PRIMARYසහ CLIPBOARDතේරීම් වලට ප්‍රවේශය තිබිය යුතුය . මෙම තේරීම් දෙක පිළිවෙලින් *සහ +රෙජිස්ටර වලින් ප්‍රවේශ විය හැකි අතර, වෙනත් ඕනෑම ලේඛනයක් මෙන් ඔබේ විවේක කාලයේදී ලිවීමට හා කියවීමට හැකිය. උදාහරණයක් වශයෙන්:

:%y+    ; copy/yank (y) everything (%) into the CLIPBOARD selection (+)
"+p     ; select (") the CLIPBOARD selection (+) and paste/put it
ggVG"+y ; Alternative version of the first example

ඔබේ තේරීමේ පිටපත X තේරීම් වලට ප්‍රවේශ වීමට සෘජුවම සහාය නොදක්වන්නේ නම්, එය ලෝකයේ අවසානය නොවේ. xselඅවසාන කොටසේ විස්තර කර ඇති පරිදි ඔබට තාක්ෂණය භාවිතා කළ හැකිය .

:r ! xsel -bo ; read  (r) from the stdout of (!) `xsel -bo`
:w ! xsel -b  ; write (w) to the stdin of    (!) `xsel -b`

යතුරු කොම්බෝ කිහිපයක් බැඳ තබන්න, ඔබ හොඳ විය යුතුය.


DISPLAY=X නොවන පරිසරයකින් X යෙදුමක් ඇමතීමේදී භාවිතා කිරීමට අනිවාර්යයෙන්ම මතක තබා ගන්න . X යෙදුම් වලට DISPLAYඔවුන් කතා කරන්නේ කුමන සේවාදායකය (හෝ එක් සේවාදායකයක් බහු සැසි හසුරුවන්නේද?) හඳුනා ගැනීමට පරිසර විචල්‍යය අවශ්‍ය වේ. උදාහරණයක් ලෙස TTY එකකින් උත්සාහ කරන්න DISPLAY=:1 firefox(හෝ ඔබගේ දර්ශන හැඳුනුම්පත කුමක් වුවත්; මගේ තත්වය එසේ වේ :1).
බ්‍රැඩන් හොඳම

මට නම් මගේ පරිසරයේ තේරීම :%y+වී.එම්.
හැන්කා

2

මෙම ත්‍රෙඩ් එකෙන්, කිසිදු gclip/ xclip/ xselතෙවන පාර්ශවීය මෘදුකාංගයක් ස්ථාපනය කිරීම අවශ්‍ය නොවන විකල්පයක් ඇත.

පර්ල් පිටපතක් (පර්ල් සාමාන්‍යයෙන් සෑම විටම ස්ථාපනය කර ඇති බැවින්)

use Win32::Clipboard;
print Win32::Clipboard::GetText();

මම මෙය භාවිතා කරන්නේ කෙසේද? ස්ක්‍රිප්ට් PATH වෙත සුරකින්න සහ එයට පයිප්ප දමන්න? බෙදාගැනීමේ සබැඳි පිටපත් කිරීම සඳහා මම ඩ්‍රොප්බොක්ස් ක්ලයි එතුම ලිවීමට උත්සාහ කරමි, එබැවින් පෙළ හැසිරවීමට මට එය අවශ්‍ය වේ.
ජෙනා


1

මැකෝස් හි, භාවිතා කරන්න pbpaste .

උදාහරණයක් වශයෙන්:

ක්ලිප් පුවරුව යාවත්කාලීන කරන්න

pbpaste  | ruby -ne ' puts "\|" + $_.split( )[1..4].join("\|") ' | pbcopy

1

ඔබ මට කැමති නම් සහ root වරප්‍රසාද නොමැතිව ලිනක්ස් සේවාදායකයක් තුළ ධාවනය වන්නේ නම් සහ කිසිවක් නොමැත xclip හෝ GPM නම් තාවකාලික ගොනුවක් භාවිතා කිරීමෙන් ඔබට මෙම ගැටළුව විසඳා ගත හැකිය. උදාහරණයක් වශයෙන්:

$ echo "Hello, World!" > ~/clip
$ echo `cat ~/clip`
Hello, World!

මූල වරප්‍රසාද නොමැතිකම මෙයට බලපාන්නේ කෙසේදැයි මම නොදනිමි.
බ්‍රැඩන් හොඳම

4
RadBradenBest මූල වරප්‍රසාද නොමැතිකම යන්නෙන් මට දේවල් ස්ථාපනය කළ නොහැකි විය.
හෝර්ටා

නමුත් ඔබ ස්ථාපනය කරන්නේ කුමක් ද? X? සේවාදායකයක? ඔබ අමුතු X ඉදිරියට යැවීමේ සේවාවක් සපයන්නේ නැත්නම්, ඔබට එය කිරීමට අවශ්‍ය ඇයි දැයි මට නොපෙනේ.
බ්‍රැඩන් හොඳම

1
@BradenBest විශ්වාස නෑ. කුමන වැඩසටහනක් හෝ සේවාවක් වුවද මට පිටපත් පේස්ට් කිරීමට ඉඩ ලබා දේ.
හෝර්ටා

1
හොඳයි, ඔබ කිසියම් එකක් භාවිතා කරන්නේ නම් X selections(එය අනිවාර්යයෙන්ම "ක්ලිප්බෝඩ්" සහ xclip / xsel හි සඳහන් වේ), ඔබට සක්‍රීය X සැසියක් අවශ්‍ය වේ (මේ අනුව X සේවාදායකයක්) එවිට ඔබට තේරීමේදී ප්‍රවේශ වීමට හැකි වේ. පළමු තැන. මා අදහස් කරන්නේ කුමක්දැයි බැලීමට, DISPLAY="" xselඔබේ දේශීය යන්ත්‍රය මත ධාවනය කිරීමට උත්සාහ කරන්න . එය දෝෂයක් මත පිටව යනු ඇත, සැසිය සොයා ගැනීමට නොහැකි වීම ""සහ කිසිදු X තේරීමක් සමඟ අන්තර්ක්‍රියා කිරීමක් සිදු නොවේ. මූල වරප්‍රසාද මෙයට බලපාන්නේ කෙසේදැයි මා නොදකින බව මා මුලින් කීවේ එබැවිනි: root හෝ root නැත, සේවාදායක පරිසරයක ප්‍රයෝජනවත් X තේරීමක් ඔබට සොයාගත නොහැකි වනු ඇත.
බ්‍රැඩන් හොඳම




0

වසර 1 කට පසුව වුවද, මම තරමක් වෙනස් විසඳුමක් බෙදා ගනිමි. මෙය යමෙකුට ප්‍රයෝජනවත් වේ යැයි සිතමි.

"විවිධ පරිශීලක සැසි අතර ක්ලිප් පුවරුව බෙදාගන්නේ කෙසේද?" යන ප්‍රශ්නය මට ඊයේ හමු විය. . සමඟ සැසි අතර මාරු වන විට ctrlaltF7-ctrlaltF8 , ඇත්ත වශයෙන්ම, ඔබ පිටපත් කළ දේ ඇලවිය නොහැක.

නම් කරන ලද පයිප්පයක් මත පදනම්ව මම පහත ඉක්මන් හා අපිරිසිදු විසඳුමක් ඉදිරිපත් කළෙමි . එය නිසැකවම තරමක් හිස් හා අමු ය, නමුත් එය ක්‍රියාකාරී බව මට පෙනී ගියේය:

user1@host:~$ mkfifo /tmp/sharedClip

යැවීමේ පර්යන්තයේ

user1@host:~$ cat > /tmp/sharedClip

අවසාන වශයෙන්, ලැබීමේ පර්යන්තයේ:

user2@host:~$ cat /tmp/sharedClip

දැන්, ඔබ පළමු පර්යන්තයේ ඕනෑම දෙයක් ටයිප් කරන්න හෝ අලවන්න, සහ (පහර දුන් පසු return ), එය ලැබීමේ පර්යන්තය තුළ වහාම දිස්වනු ඇත, එහිදී ඔබට කැමති ඕනෑම තැනක නැවත පිටපත් කිරීමට / හැකිය.

ඇත්ත වශයෙන්ම මෙය පරිශීලක 1 හි ක්ලිප්බෝඩ් එකෙන් පරිශීලකයාගේ ක්ලිප්බෝඩ් එකෙන් ලබා ගත හැකි වන පරිදි එය තදින්ම නොගනී, නමුත් එයට අමතර පේස්ට් සහ පිටපත් ක්ලික් කිරීම් අවශ්‍ය වේ.


පුදුම සහගත බවක් නොපෙනේ. වෙනස් X සේවාදායක දෙකක් = වෙනස් තේරීම් කට්ටල දෙකක්. කෙසේ වෙතත්, ඔබ හැකි හරහා ආදාන / ප්රතිදාන ගත වන බව එහි තිර රචනය සකස් xsel/xclip. නිදසුනක් ලෙස, එක් කෙළවරක් කිසියම් තේරීමක් වෙනස් වී ඇත්දැයි සවන් දී ස්වයංක්‍රීයව එය (නම් කරන ලද FIFO හරහා) අනෙක් ස්ක්‍රිප්ටයට නල කරයි, එය පයිප්ප එකක් හෝ වැඩි ගණනකට සවන් දෙන අතර එය තමන්ගේම X තේරීමට ඇතුළත් කරයි. පෙළ පිටපත් කිරීම ස්වයංක්‍රීයව අනෙක් X සැසියේ තේරීමේදී එකම පෙළ දිස්වනු ඇත. අමතක කරන්න එපා $DISPLAY.
බ්‍රැඩන් හොඳම

0

රූබි ඔන්ලයිනර් මට පයිතන් සමඟ උත්සාහ කිරීමට පෙලඹීමක් ඇති කළේය.

අපට අවකාශ 4 ක් සහිත ක්ලිප් පුවරුවේ ඇති ඕනෑම දෙයක් ඇතුල් කරන විධානයක් අවශ්‍ය යැයි කියන්න. ස්ටැක් ඕවර් ප්‍රවාහයේ ස්නිපෙට් බෙදා ගැනීම සඳහා පරිපූර්ණයි.

$ pbpaste | python -c "import sys
 for line in sys.stdin:
   print(f'    {line}')" | pbcopy

එය යතුරු ලියනය නොවේ. පයිතන් සඳහා ලූපයක් කිරීමට නව රේඛා අවශ්‍ය වේ. මතකයේ අතිරේක අරාවක් ගොඩ නැගීම වළක්වා ගැනීම සඳහා එක් වර්‍ගයක රේඛා වෙනස් කිරීමට අපට අවශ්‍යය.

අමතර අරාව තැනීමට ඔබට අවශ්‍ය නැතිනම් උත්සාහ කරන්න:

$ pbpaste | python -c "import sys; print(''.join([f'    {l}' for l in sys.stdin]))" | pbcopy

නමුත් අවංකවම පික්තන්ට වඩා හොඳයි. මම මෙම අන්වර්ථය මගේ ~/.bashrcගොනුවේ අර්ථ දැක්වුවෙමි

alias indent="pbpaste | awk '{print \"    \"\$0}' | pbcopy"

දැන් මම ධාවනය කරන විට indentමගේ ක්ලිප්බෝඩ් එකේ ඇති ඕනෑම දෙයක් ඉන්ඩෙන්ට් කර ඇත.

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.