macospbcopy
实用程序抓取其输入流并将其存储在系统剪贴板中,而不显示任何内容。因此,当我想在终端中复制/粘贴命令的输出时,我通常首先运行一个命令来正常打印以查看我得到的内容,然后再次运行以通过管道传输到 pbcopy。
Linux、IIRC 上也存在类似的实用程序。是否可以tee
用于将数据发送到 pbcopy,而不是文件,从而允许与副本同时显示?
例子:
无论出于何种原因,我想记录有关目录中文件的信息,但仅列出名称中带有a
或字符的文件。b
第一个ls
用于确保我已经过滤掉了我不想要的东西。第二个用于将结果放入剪贴板。我可以通过某种方式利用一步完成所有事情tee
吗?
% touch a b c
% ls | egrep 'a|b'
a
b
% ls | egrep 'a|b' | pbcopy
%
第二次运行后的剪贴板内容,我希望一步到位:
a
b
答案1
这应该是可行的。使用tee
直接打印到终端/dev/tty
,或者使用进程替换(在 Bash/ksh/zsh 中)将其打印到pbcopy
:
whatever | tee /dev/tty | pbcopy
或者
whatever | tee >(pbcopy)
(进程替换构建的管道与pbcopy
常规管道类似,但使其可用作文件名。)