Linux / Debian – moreutils中的“撒尿”是什么?

我最近在Debian(和Ubuntu)中发现了'moreutils'软件包 。 这是一个方便的unix工具集合。

其中一个命令是“撒尿”。 手册页说:

小便是像发球,但pipe道。

然而,这是一个简短的手册页, 我已经提交了一个关于它的错误 。 有谁知道它是什么,如何使用它,为什么会使用它?

这就是你可以用小便做什么:

seq 5 -1 1 > file cat file |pee 'sort -u > sorted' 'sort -R > unsorted' 

所以小便使用shellpipe道而不是文件。

bash不需要撒尿,它可以打开shell命令作为文件:

 cat file |tee >(sort -u > sorted) >(sort -R > unsorted) 

如果你先使用tee可能会更容易理解。 这个有用的旧工具需要标准input,并写出到多个文件,再加上标准输出。 下列:

 echo "Hello world" | tee one two 

将创build两个文件,命名为onetwo ,都包含stringHello world 。 它也将打印到您的terminal。


现在pee执行类似的function,而不是将输出redirect到多个文件,而是redirect到多个辅助命令,alapipe道。 它与tee稍有不同,它不会将原始标准input发送到标准输出,因为将它与辅助命令的输出结合起来是没有意义的。 以下非常简单的例子:

 echo "Hello world" | pee cat cat 

将输出stringHello world两次到您的terminal。 这是因为cat的两个实例中的每一个都接收标准输出,并且执行哪个cat操作,这是打印。