我最近发现Debian(和 Ubuntu)中的“moreutils”包.它是方便的unix工具的集合。
其中一个命令是“pee”。手册页上写道:
pee 类似于 tee,但是用于管道。
然而这是一个简短的手册页,我已经提交了相关错误报告。有人知道它有什么用处、怎么用、为什么要用它吗?
答案1
你可以用尿液来做以下事情:
seq 5 -1 1 > file
cat file |pee 'sort -u > sorted' 'sort -R > unsorted'
所以 pee 与 shell 管道而不是文件一起工作。
bash 不需要 pee,它可以将 shell 命令作为文件打开:
cat file |tee >(sort -u > sorted) >(sort -R > unsorted)
答案2
如果您使用过 first,那么可能更容易理解tee
。这个有用的旧工具接受标准输入并写入多个文件,以及标准输出。以下内容:
echo "Hello world" | tee one two
将创建两个文件,分别名为one
和two
,均包含字符串Hello world
。它还将打印到您的终端。
现在pee
执行类似的功能,但不是将输出重定向到多个文件,而是重定向到多个辅助命令,ala 管道。它与略有不同,tee
因为它不会将原始 stdin 发送到 stdout,因为将其与辅助命令的输出相结合是没有意义的。以下是非常简单的示例:
echo "Hello world" | pee cat cat
会将字符串输出Hello world
到终端两次。这是因为 的两个实例都cat
接收标准输出并执行cat
打印操作。