Linux/Debian - moreutils 中的“pee”有什么作用?

Linux/Debian - moreutils 中的“pee”有什么作用?

我最近发现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

将创建两个文件,分别名为onetwo,均包含字符串Hello world。它还将打印到您的终端。


现在pee执行类似的功能,但不是将输出重定向到多个文件,而是重定向到多个辅助命令,ala 管道。它与略有不同,tee因为它不会将原始 stdin 发送到 stdout,因为将其与辅助命令的输出相结合是没有意义的。以下是非常简单的示例:

echo "Hello world" | pee cat cat

会将字符串输出Hello world到终端两次。这是因为 的两个实例都cat接收标准输出并执行cat打印操作。

相关内容