最近、Debian(およびUbuntu)で 'moreutils'パッケージを発見しました。便利なUNIXツールのコレクションです。
コマンドの1つは「おしっこ」です。マニュアルページには次のように書かれています:
おしっこはティーに似ていますが、パイプ用です。
しかし、それは短いマニュアルページです、私はそれについてバグを提出しました。誰がそれが何をするのか、どのように使用するのか、なぜそれを使用するのかを知っていますか?
最近、Debian(およびUbuntu)で 'moreutils'パッケージを発見しました。便利なUNIXツールのコレクションです。
コマンドの1つは「おしっこ」です。マニュアルページには次のように書かれています:
おしっこはティーに似ていますが、パイプ用です。
しかし、それは短いマニュアルページです、私はそれについてバグを提出しました。誰がそれが何をするのか、どのように使用するのか、なぜそれを使用するのかを知っていますか?
回答:
おしっこでできることは次のとおりです。
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 >/dev/null
標準出力に標準入力を複製避けるために
cat file | pee 'grep this' 'grep that' > lines.with.this.or.that.txt
... teeを使用するとfile
、stdoutのコピーを取得できます。
>(command)
機能は、プロセス置換と呼ばれます。
tee
最初に使用した方が理解しやすいでしょう。この便利な古いツールは、標準入力を取り、複数のファイルと標準出力に書き出します。以下:
echo "Hello world" | tee one two
名前の2つのファイルが作成されますone
とtwo
、両方が文字列を含みます、Hello world
。また、端末にも印刷されます。
今、pee
同様の機能を実行ではなく、複数のファイルに出力をリダイレクトするのには、複数の二次のコマンド、ALAのパイプにリダイレクトします。tee
元のstdinをstdoutに送信しない点で、セカンダリコマンドの出力と組み合わせても意味がないため、少し異なります。次の非常に簡単な例:
echo "Hello world" | pee cat cat
文字列Hello world
を端末に2回出力します。これは、の2つのインスタンスのそれぞれがcat
標準出力を受け取り、何をするかcat
、つまり印刷するためです。
stdin
ファイル名パターンを作成するすべてのスクリプトにクローンを掛けて与えるために使用されます、純粋なbashはこれを行うことができますか?AFAIUそれは次のようなものcausnigカッコ内のアスタリスクを拡大するtee >(app1 app2 app3 app4)
されていない>(app1) >(app2) >(app3) >(app4)
あなたの答えを示すこと