Linux
Linux/Debian - moreutils 中的“小便”有什麼作用?
我最近在 Debian(和 Ubuntu)中發現了 ‘moreutils’ 包。它是方便的 unix 工具的集合。
命令之一是“小便”。手冊頁說:
小便就像三通,但用於管道。
然而這是一個簡短的手冊頁,我已經送出了一個關於它的錯誤。有誰知道它的作用,如何使用它,為什麼要使用它?
以下是你可以用小便做的事情:
seq 5 -1 1 > file cat file |pee 'sort -u > sorted' 'sort -R > unsorted'
所以 pee 使用 shell 管道而不是文件。
bash 不需要小便,它可以將 shell 命令作為文件打開:
cat file |tee >(sort -u > sorted) >(sort -R > unsorted)
如果您
tee
首先使用它可能更容易理解。這個有用的舊工具接受標準輸入並寫入多個文件以及標準輸出。下列:echo "Hello world" | tee one two
將創建兩個文件,名為
one
和two
,都包含字元串Hello world
。它還將列印到您的終端。現在
pee
執行類似的功能,但不是將輸出重定向到多個文件,而是重定向到多個輔助命令,ala 管道。tee
它與不將原始標準輸入發送到標準輸出這一點略有不同,因為將它與輔助命令的輸出結合起來是沒有意義的。以下非常簡單的範例:echo "Hello world" | pee cat cat
將字元串輸出
Hello world
到您的終端兩次。這是因為兩個實例中的每一個都cat
接收標準輸出並執行該cat
操作,即列印。