2012-04-06 11 views
0

私はクラスタ上で実行するジョブに関するいくつかの有益な情報を出力する単純な関数を使って作業しています。これは、レポートと呼ばれています:grepから関数へのファイル名のパイプ

function report() 
{ 
    for FILE in $*; 
     do tac $FILE | grep best -m1; 
    done; 
} 

私は生成出力ファイルにレポートを呼び出すしたいのですが、何か問題が発生し、ジョブが終了している場合のみ。出力ファイルの最終行はTerminatedです。ですから、例えば:

[[email protected] scripts]$ grep Term optim_HGF.o1910512 -n 
242:Terminated 

[[email protected] scripts]$ report optim_HGF.o1910512 
New best fit at function call 4496. Took 6.292452e+00 seconds. Objective = 4.129260e-01 

今私は何かが間違っていた対象のファイルやパイプ報告する名前を見つけるためにはgrepを使用してみてください。

[[email protected] scripts]$ grep optim_HGF.o* -l | report 

しかし、これは出力されません。私は何をしたいのですか?

答えて

2

あなたが不足しているしているコマンドはxargsです:

grep -l Term optim_HGF.o* | xargs report 
+1

一つキャッチしかし、ここでの報告書は、エイリアス機能ではなくコマンドであるので、生成xargsのサブシェルはそれを認識しません。あなたの答えはこの答えのトラックに私を置いた:私のニーズを満たす終わったhttp://stackoverflow.com/questions/513611/xargs-doesnt-recognize-bash-aliases。ありがとう! – Sevenless

関連する問題