問題タブ [tee]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Windows バッチまたは Java で Tee を作成することは可能ですか?
Windows 7 コンソールで実行する Java プログラムがあります。
このプログラムは非常に長時間実行されます。System.out.println を使用して、随時コンソールに出力を書き込みます。
既存の Java コードを変更せずに、その出力をコンソールとログ ファイルの両方にリアルタイムで送信することは可能ですか?
Windows 7 でそれができない場合、Java で Tee ユーティリティを作成することは可能ですか?
Windows 8 で解決しましたか?
bash - バッシュ、名前付きパイプのティー?
次のコード:
次のように実行すると、出力は生成されません。
なぜ?!tee
stdinを名前付きパイプ(および/dev/null
)cat
にコピーしてから、名前付きパイプの内容をstdoutにコピーすることを期待します。なぜ動かないの?!
私はもっと大きなbashスクリプトを書き込もうとしていますが、。tee
の代わりに何か他のものを使用して、そこに本当に必要です/dev/null
。予期しない動作を上記の例に絞り込みました。
bash - stdout と stderr の両方をファイルとコンソールにキャプチャする
コンソールにステータスを吐き出し、そのログファイルを作成するスクリプトを作成しようとしています。そのために、bash スクリプトで次の行を使用しています。
この行を使用すると、標準出力がコンソールに効果的に表示され、それが logfile.txt に保存されます。ここで、stdout と stderr の両方をキャプチャしたいと考えています。使ってみた
これはうまくいかないようです。なんで?どうすれば自分の仕事を達成できますか?
unix - ティーを使用してすべての出力を標準出力に送信し、grep された出力をファイルに送信するにはどうすればよいですか?
次のように、tee を使用して stdout とファイルの両方に出力を送信できます。
完全な出力を stdout に送信し、grep された出力をファイルに送信するにはどうすればよいですか?
tee は 2 番目のファイル引数を想定しているため、これは機能しません。
perl - この bash スクリプトはどのようにして無限ループを引き起こしますか?
いくつかのグーグル(私は決してbashの専門家ではありません)から、テストスイートを実行し、実行中に下部にステータスバーを出力できるbashスクリプトをまとめることができました。通常、約 10 時間かかります。ステータス バーには、成功したテストの数と失敗したテストの数が表示されます。
うまく機能することもありますが、無限ループに陥ることもあります。私が使用しているコードは次のとおりです。
バグに遭遇すると、エラー メッセージが無限に繰り返され、ログ ファイル ( out.txt
) が数メガバイトの巨大なものになります (一度 GB に入ったと思います)。繰り返されるエラーの例を次に示します (各セットの間に 4 行の空白があります)。
2>&1
リダイレクトを取り出そうとしましたが、に変更しようとしましたwhile IFS=read -r line;
がwhile read -r line;
、無限ループが発生し続けます。奇妙なことに、これはほとんどの場合に発生するようですが、長いテスト スイートを問題なく終了することもありました。
編集:
私がこれを書いている理由は、白黒のテスト スイートから色分けされたテスト スイート (したがって ANSI コード) にアップグレードするためです。以前は、次を使用してテスト スイートを実行していました。
この方法で実行すると、Perl から同じ警告が表示されますが、無限ループに陥ることなく、ファイルに出力されて先に進みます。watch を使用すると、[32m
実際にテキストを緑色でレンダリングするのではなく、次のようなものも印刷されます。
r - Rで出力デバイスをネストしますか?
一度に複数の出力デバイスにグラフをプロットすることは可能ですか? 私は試した:
XY プロットは にのみ入りlevel3.png
ます。(3つのファイルすべてに入る必要があります)
不思議なことに、AB プロットは level2.pdf に入ります。
bash - stdout を TTY として保持しながら、bash スクリプト内のログにティー
stdout の COPY を bash スクリプト自体からログ ファイルにリダイレクトするのと同様ですが、stdout を TTY デバイスとして保持したいと思います。
たとえば、次のスクリプトがあります。
それらを実行すると、ラッパーは stdout を TTY デバイスとして使用します。
ラッパーを介して実行された場合でも、スクリプトが TTY にあると信じられるように、その動作を反転するにはどうすればよいですか?
bash - Bash 読み取りライン バッファ オーバーフロー
ファイルから行を読み取り、それらの行でいくつかのロジックを実行する bash スクリプトがあります。
そう
while ループの本体では、1 つのコマンドの出力を にパイプしていますtee
。この出力が非常に大きい場合 (100K 程度)、read line の次の呼び出しが失敗し、ファイル内のすべての行が読み取られる前に while ループが終了します。
なぜこれが起こるのですか?私は bash の専門家ではありませんが、何らかのバッファ オーバーフローが発生しているようです。もしそうなら、どうすればこれを修正できますか?
ありがとう
編集:したがって、いくつかの明確化が必要です。$1 は、ファイル名に対応する bash スクリプトに与えられる最初のコマンド ライン引数です。私が正確に行っているのは、入力ファイルの各行をパラメーターとして別のプログラムに渡すことです。そのプログラムの stdout と stderr を| tee -a somefile
私が入力しているプログラムは非標準です。私が読んでいるファイルの行によっては、このプログラムの出力が非常に大きくなる可能性があります。
だから私がやっていることのより詳細な例は
ありがとう、
-D
bash - 複数のファイルにパイプしますが、stdout にはパイプしません
stdout を複数のファイルにパイプしたいのですが、stdout 自体は静かにしておきます。tee
近いですが、ファイルと標準出力の両方に出力されます
これは機能しますが、可能であればもっと単純なものを好むでしょう