它是可能的管道到/从剪贴板在Bash?
无论是连接到设备手柄还是使用辅助应用程序,我都找不到任何东西。
例如,如果/dev/clip是一个连接到剪贴板的设备,我们可以这样做:
cat /dev/clip # Dump the contents of the clipboard
cat foo > /dev/clip # Dump the contents of "foo" into the clipboard
它是可能的管道到/从剪贴板在Bash?
无论是连接到设备手柄还是使用辅助应用程序,我都找不到任何东西。
例如,如果/dev/clip是一个连接到剪贴板的设备,我们可以这样做:
cat /dev/clip # Dump the contents of the clipboard
cat foo > /dev/clip # Dump the contents of "foo" into the clipboard
当前回答
在macOS系统中,请使用pbpaste。
例如:
更新剪贴板
pbpaste | ruby -ne ' puts "\|" + $_.split( )[1..4].join("\|") ' | pbcopy
其他回答
确保使用别名xclip="xclip -selection c" 否则你将无法使用Ctrl+v进行粘贴。
例子: 执行echo -n test | xclip命令后,Ctrl+v将粘贴test
如果您像我一样在没有根权限的Linux服务器上运行,并且没有任何xclip或GPM,您可以通过使用临时文件来解决这个问题。例如:
$ echo "Hello, World!" > ~/clip
$ echo `cat ~/clip`
Hello, World!
我只是在我的KDE环境中搜索相同的东西。
请随意使用剪贴和剪贴。
KDE:
> echo "TEST CLIP FROM TERMINAL" | clipcopy
> clippaste
TEST CLIP FROM TERMINAL
xsel在Debian/Ubuntu/Mint
# append to clipboard:
cat 'the file with content' | xsel -ab
# or type in the happy face :) and ...
echo 'the happy face :) and content' | xsel -ib
# show clipboard
xsel -ob
# Get more info:
man xsel
安装
sudo apt-get install xsel
Ruby的联机程序启发我尝试使用Python。
假设我们想要一个命令,将剪贴板中的任何内容缩进四个空格。它非常适合在Stack Overflow上共享代码片段。
$ pbpaste | python -c "import sys
for line in sys.stdin:
print(f' {line}')" | pbcopy
这不是打字错误。Python需要换行符来执行for循环。我们希望在一次传递中更改行,以避免在内存中构建额外的数组。
如果你不介意构建额外的数组尝试:
$ pbpaste | python -c "import sys; print(''.join([f' {l}' for l in sys.stdin]))" | pbcopy
但老实说,awk在这方面比python更好。我在~/中定义了这个别名。bashrc文件(
alias indent="pbpaste | awk '{print \" \"\$0}' | pbcopy"
当我运行缩进,剪贴板里的东西都会缩进。