タグ付けされた質問 「tee」

teeは、標準入力を読み取り、標準出力と、引数として指定されたファイルに書き込むコマンドラインユーティリティです。このタグは、teeコマンドに関する質問に使用します。


3
`:w!sudo tee%`の仕組み
vimに書き込む権限のないファイルを開いてから、変更する必要があると判断した場合、vimを終了せずに変更を書き込むことができます:w !sudo tee % 。これを解剖してください。 私はその:w部分を理解しています、それは現在のバッファをディスクに書き込みます、すでにそれに関連付けられたファイル名があると仮定しますよね? また!、sudo teeコマンドを実行し%、現在のバッファの内容を表すものを理解していますか? しかし、これがどのように機能するかまだ理解していない。
27 vim  sudo  tee 

4
コマンドの出力を複数のコマンドにリダイレクトすることは可能ですか?
私の知る限り、teeコマンドを使用して、標準出力を画面とその他のファイルに分割できます。 command -option1 -option2 argument | tee file1 file2 file3 teeを使用してファイルの代わりにコマンドに出力をリダイレクトすることは可能ですか?理論的にはコマンドのチェーンを作成できますか?
21 command-line  pipe  tee 

2
受け取っているアプリケーションを殺さずにLinux teeコマンドを終了する方法
Linuxマシンの電源が入っている限り実行するbashスクリプトがあります。以下に示すように開始します。 ( /mnt/apps/start.sh 2>&1 | tee /tmp/nginx/debug_log.log ) & 起動後、ps出力にteeコマンドが次のように表示されます。 $ ps | grep tee 418 root 0:02 tee /tmp/nginx/debug_log.log 3557 root 0:00 grep tee ログが特定のサイズに達すると、teeが生成するログのサイズを監視し、teeコマンドを強制終了する機能があります。 monitor_debug_log_size() { ## Monitor the file size of the debug log to make sure it does not get too big while true; do cecho …
19 linux  scripting  pipe  kill  tee 

4
stdoutへの出力と同時にファイルへのgrep
テキストをに出力するスクリプトがありますstdout。ターミナルでこのすべての出力を確認し、同時にいくつかの行をフィルタリングしてファイルに保存したいです。例: $ myscript Line A Line B Line C $ myscript | grep -P 'A|C' > out.file $ cat out.file Line A Line C ターミナルで最初のコマンドの出力を確認し、2番目のコマンドの出力をファイルに保存します。同時に。私が使ってみteeて、より良い、ない結果、または逆の結果。
18 grep  pipe  stdout  tee 

3
tee + cat:出力を数回使用し、結果を連結します
たとえば、あるコマンドを呼び出すとecho、そのコマンドの結果を他のいくつかのコマンドで使用できますtee。例: echo "Hello world!" | tee >(command1) >(command2) >(command3) catを使用すると、いくつかのコマンドの結果を収集できます。例: cat <(command1) <(command2) <(command3) 私は両方のことを同時に行うことができるようにしたいのでtee、何か他の出力(たとえばecho私が書いたもの)でそれらのコマンドを呼び出してから、単一の出力ですべての結果を収集することができますcat。 それは、その結果を順に維持することが重要です。この手段の出力のラインcommand1、command2およびcommand3絡み合っが、(それがで起こるようにコマンドがあるとして注文するべきではありませんcat)。 そこよりも良い選択肢かもしれcatとteeが、それらは私がこれまで知っているものです。 入力と出力のサイズが大きくなる可能性があるため、一時ファイルの使用を避けたい。 どうすればこれができますか? PD:別の問題は、これがループで発生し、一時ファイルの処理が難しくなることです。これは私が持っている現在のコードであり、小さなテストケースで動作しますが、私が理解できない何らかの方法でauxfileから読み書きするときに無限ループを作成します。 somefunction() { if [ $1 -eq 1 ] then echo "Hello world!" else somefunction $(( $1 - 1 )) > auxfile cat <(command1 < auxfile) \ <(command2 < auxfile) \ …
18 pipe  cat  tee  concurrency 

3
標準出力から標準エラー出力へ?
あるプロセスのstdoutを別のプロセスのstdinに送信したいのですが、コンソールにも送信したいのです。たとえば、stdoutをstdout + stderrに送信します。 たとえば、私はgit edit次のエイリアスを持っています: git status --short | cut -b4- | xargs gvim --remote ファイル名のリストを画面とに送信したいのxargsですが。 だから、teeこれを行うようなユーティリティがありますか?次のようなことができるように: git status --short | \ cut -b4- | almost-but-not-quite-entirely-unlike-tee | \ xargs gvim --remote

2
コマンド用の `tee`
teeパイプされた標準入力を標準出力とファイルにリダイレクトできます。 echo Hello, World! | tee greeting.txt 上記のコマンドは、端末画面にグリーティングを表示し、greeting.txtファイルの内容に保存し、その名前でファイルがない場合はファイルを作成します。 上書きする代わりに既存のファイルに追加する-aためのスイッチもありteeます。 パイプ入力をファイルではなくコマンドと標準出力にリダイレクトする便利な方法はありますか? bukuインデックス番号で指定されたブックマークのURLをプライマリ選択にコピーするためのラッパースクリプトを作成しようとしています。 # bukuc: #!/bin/sh url=$(buku -f 1 -p $1 | cut -f 2) # NUMBER : URL echo $url # DISPLAY echo $url | xsel # PRIMARY SELECTION ここではecho 2回使用します。最初は端末に表示し、次にプライマリ選択(クリップボード)に保存します。 echo $url | teeC xsel次のコマンドに渡す前に出力を表示するための何かまたはショートカットを想像してください(コマンドを連鎖する)、次のように結果を変数に保存することなく、コマンド全体を1行に連鎖させることができます: buku -f 1 -p $1 …

3
パイプと標準出力への直接出力
コマンドの出力をパイプしてstdoutに送る方法があるかどうか疑問に思っていました。したがって、たとえば、fortuneフォーチュンクッキーを出力し、クリップボードにコピーします。 $ fortune | tee >(?stdout?) | pbcopy "...Unix, MS-DOS, and Windows NT (also known as the Good, the Bad, and the Ugly)." (By Matt Welsh)
14 bash  pipe  stdout  tee 

3
teeを使用してgrepにリダイレクトする方法
Tシャツの使用経験はあまりないので、これがあまり基本的ではないことを願っています。 この質問に対する答えの1つを見た後、私は奇妙な行動に出会いましたtee。 最初の行と見つかった行を出力するために、これを使用できます: ps aux | tee >(head -n1) | grep syslog USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND syslog 806 0.0 0.0 34600 824 ? Sl Sep07 0:00 rsyslogd -c4 ただし、これを(zshで)初めて実行したとき、結果の順序が間違っていて、列ヘッダーがgrepの結果の下にありました(ただし、これは再び起こりませんでした)。 ps aux | tee >(grep syslog) | head -n1 USER PID %CPU %MEM VSZ …


2
ティーはパイプラインを遅くしますか?
私はティーがパイプラインを遅くするかどうか疑問に思っています。結局のところ、ディスクへのデータの書き込みは、データをパイプするよりも遅くなります。 Tは、データがディスクに書き込まれるまで、次のパイプにデータを送信して待機しますか?(そうでない場合は、送信されたがディスクに書き込まれていないデータをTがキューに入れなければならないので、私には思えないでしょう。) $ program1 input.txt | tee intermediate-file.txt | program2 ...
10 pipe  tee 

2
grep regexに応じて出力をリダイレクトする
gradle runRESTサーバーの起動に使用しています。RESTサーバーの出力は次のようになります。 XXX.XXX.XX.XXX - <moreinfo> randomtext randomtext XXX.XXX.XX.XXX - <moreinfo> XXX.XXX.XX.XXX - <moreinfo> randomtext XXX.XXX.XX.XXX - <moreinfo> XXX.XXX.XX.XXXこれはIPアドレスです。ランダムテキストはエラーメッセージです。悲しいことに、すべての出力はstdoutに送られます。 IPアドレスで始まるすべての行を、呼び出されたファイルに転送し、err.log他のすべての行に転送するにはどうすればよいall.logですか 残念ながら、gradle runこれはRESTサーバーであるため、1回しか起動できず、停止しません。 多分tee、grep組み合わせを使用しますか?
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.