2010-12-22 13 views

答えて

16

ティーが何のためにあるのかです:あなたは(上記のように)のいずれかが、リダイレクト後に一つのファイルを入れたい、または/dev/nullに標準出力を送ることができよう

command | tee file1 file2 file3 > file4 

ティーも、stdoutに出力します。あなたのケースでは

echo "" | tee /home/jem/rep_0[1-3]/logs/SystemOut.log >/dev/null 
0

第何回teeを使用してはどうですか?

echo "Your text" | tee file1 | tee file2 > file3 
+0

ありがとう。私は、ワイルドカードファイル参照を使用することを指定しなかった。 – Synesso

+0

Laurenceの答えを見てください。 – Robert

+1

'tee'に複数の引数を指定できます。それを2度実行する必要はありません。 –

0

パイプ「ティー」コマンドへの分岐にファイルとstdうちに、カスケードティーが

+0

ありがとうございます。私は、ワイルドカードファイル参照を使用することを指定しなかった。 – Synesso

+1

カスケードする代わりに、複数の引数を 'tee'に指定することができます。 –

5

コマンドあなたは標準入力から読み込み、標準出力とファイルへの書き込みteeを使用して、これを行うことができます。 teeもstdoutに出力するので、私はその出力を/dev/nullに送ることを選択しました。 bash展開は既存のファイルと一致するので、書き込むファイルは、このコマンドを実行する前に存在する必要があります。サイドノートとして

$ echo "" | tee /home/jem/rep_0[1-3]/logs/SystemOut.log > /dev/null 

、あなたがechoに渡す""は冗長です。

あなたの質問に直接関係はありませんが、bash拡張に頼らない場合は、複数のパイプを持つことができます。

$ echo hello > foo > bar > baz 
$ cat foo bar baz 
hello 
hello 
hello 
1

あなたはこれを行うことができます。

echo "" | tee /home/jem/rep_0{1..3}/logs/SystemOut.log 

は、stdoutに出力を抑制し、上記のコマンドの最後にこれを追加するには:

> /dev/null 

あなたの質問でechoコマンド(空の引用符を必要としない)は単にファイルに改行を入れます。空のファイルを作成する場合は、touchコマンドを使用します。

+0

putsだけでなく、内容を改行で上書きします。 –

1

私はこの同じ質問をしていましたが、ワイルドカードを使って例を追加したかったのは、表示されていなかったからです。私はこれがあなたが探していたものだと思います:

echo "" | tee *.log 
+0

正確に私が必要とするものは、完璧です。 – PoweredByRice