我最近在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两个文件,命名为one和two ,都包含stringHello world 。 它也将打印到您的terminal。
现在pee执行类似的function,而不是将输出redirect到多个文件,而是redirect到多个辅助命令,alapipe道。 它与tee稍有不同,它不会将原始标准input发送到标准输出,因为将它与辅助命令的输出结合起来是没有意义的。 以下非常简单的例子:
echo "Hello world" | pee cat cat
将输出stringHello world两次到您的terminal。 这是因为cat的两个实例中的每一个都接收标准输出,并且执行哪个cat操作,这是打印。