2016-05-27 1 views
0

クエリ機能の場合は、製品表です。結果を返さずに標準出力をどのようにリダイレクトするのですか?私はテーブルの結果をリダイレクトせずに標準出力をリダイレクトしたい。私はkdbが生成するすべてのメッセージをキャッチしたい。標準出力をkdbでリダイレクトするには、結果以外のすべてを指示する方法はありますか?

は、だから私はこの

q abc.q -p 4000 </dev/null> kdb.log 2>&1 &. 

を試してみましたが、それはまた、右、クエリからの結果をリダイレクト?

直接エラーだけであれば、それはすべてをキャッチしません、そうですか?私は結果を除いてすべてをキャッチしたい。

+0

あなたは出力のいくつかの例を与え、あなたがそれらをルーティングすることを希望することはできますか? – user2242865

+0

テーブルを除くすべてのものをリダイレクトしたい。タブを言うことができます:([] a:1 2 3; b:2 4 6);私はタブをリダイレクトしたくないのですが、qコンソールにも表示したくありません。すべてのエラーメッセージやその他の情報をログファイルにリダイレクトしたい。私はあまりにも大きいそれらのテーブルのcuzを記録したくありません。 – Terry

+0

これはkdbの質問よりもUnixの質問によく似ていますか? KDBは 'show table'のような結果を含め、プロセスが行うように標準出力/出力に出力するので、(a)コマンドラインでリダイレクトする(あなたの例ですでに行ったように)、(b)正しいチャンネルを使用するリダイレクトするq内。また、q内に.z.p [gs]を記録することもできます。脇の下として、仲間の仲間に最大賞金をあげればより多くの返答を得るかもしれない;) –

答えて

2

チェックアウトは以下..

q).logger.on[`:/home/chromozorz/q/projects/myLog] 
q)2+2 
4 
q)1+1 
2 
q)t:([] a:til 5;b:5?`2) 
q)2+string 
'type 
q)2+`a 
'type 
q)\\ 

今すぐ作成されたログをチェックしてください... Qにロードした後

.logger.on:{[pth] 
    if[not ":/"~2#string[pth];-1"\n\tPlease supply absolute path to file; e.g.) .logger.on[`:/path/to/logfile]";]; 
.logger.err:hopen `$string[pth],".err"; 
.logger.std:hopen `$string[pth],".out"; 
writeOut:{ h:(.logger.std;.logger.err)x~`err; h(y,"\n");}; 
zpi:{y:-1_y; r:@[value;y;{"Error:'",x}]; $["Error:"~6#r;[e:6_r;x[`err;e];-1 e];[x[`std;y];show r]];}[writeOut;]; 
`.z.pi set zpi; 
} 

、いくつかのコマンドを入力します(私は自宅のプロジェクトのためにこれを書きました)ファイル。

[email protected]:~/q/projects$ cat myLog.err 
'type 
'type 
[email protected]:~/q/projects$ cat myLog.out 
2+2 
1+1 
t:([] a:til 5;b:5?`2) 

コンソールに結果を表示したくない場合は、単にZPI定義を編集は...

+0

ありがとうございました!!!!私は投票することができたらいいと思います.... – Terry

+0

問題はありません!なぜ投票できないのですか? – Chromozorz

関連する問題