我可以使用 tee 来显示其他实用程序倾向于抑制的输出吗?

我可以使用 tee 来显示其他实用程序倾向于抑制的输出吗?

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常规管道类似,但使其可用作文件名。)

相关内容