最近 Debian(およびUbuntu)の 'moreutils'パッケージ を発見しました。これは、便利なUNIXツールのコレクションです。
コマンドの1つは「おしっこ」です。マンページは言う:
おしっこはティーのようですが、パイプ用です。
しかし、それは短いmanページです 私はそれについてバグを提出しました 。誰かがそれが何をするか、それをどのように使うか、なぜそれを使うのかを知っていますか?
おしっこでできることは次のとおりです。
seq 5 -1 1 > file
cat file |pee 'sort -u > sorted' 'sort -R > unsorted'
したがって、peeはファイルの代わりにシェルパイプで動作します。
bashはおしっこを必要としません。シェルコマンドをファイルとして開くことができます。
cat file |tee >(sort -u > sorted) >(sort -R > unsorted)
最初にtee
を使用した方が理解しやすいでしょう。この便利な古いツールは、標準入力を取り、複数のファイルと標準出力に書き込みます。以下:
echo "Hello world" | tee one two
one
とtwo
という名前の2つのファイルが作成され、どちらにも文字列Hello world
が含まれます。端末にも出力されます。
pee
は同様の機能を実行しますが、出力を複数のファイルにリダイレクトする代わりに、パイプなどの複数のセカンダリコマンドにリダイレクトします。元のstdinをstdoutに送信しないという点でtee
とは少し異なります。これは、2次コマンドの出力と組み合わせても意味がないためです。次の非常に単純な例:
echo "Hello world" | pee cat cat
文字列Hello world
を端末に2回出力します。これは、cat
の2つのインスタンスのそれぞれが標準出力を受け取り、cat
が実行する処理を実行するためです。