2011-01-30 1 views
3

リモートでCLIコマンドを実行するSSH接続を使用するJavaアプリケーションがあります。特定のコマンドについては、コマンドの出力を2つの正規表現でパイプ処理して、出力全体の2つの相関サブセットを見つけ出し、その出力をプログラムに戻したいと思います。 2つの正規表現のそれぞれについてJavaアプリケーションとgrep - 2つの正規表現でgrepに渡されたコマンド出力を独立して処理する方法はありますか?

:< RE1> & < RE2>、Iは、得られた出力をフォーマットしたい:< RE1out> & < RE2out> < アクション1介し> & < action2>

<command> | grep -e <RE1> -e <RE2> | (<REout1> given to <action1> and <REout2> given to <action2>) yields <final_output> 
+1

実際にJavaから**別のプログラム**を呼び出すつもりですか?そういうわけではありませんか? 「Javaは方法であり、真実であり、光であり、誰もJavaを通して節約することはできません。」 – tchrist

+1

あなたはその結論をどのように描くのかは分かりません...実際、私はこの質問最初にJavaでタグ付けされているはずです。:) – aioobe

+0

両方のアクションの出力をメインプログラムに戻したいのですか、本当はコマンドからの出力が返されることを意味していますか? –

答えて

1

を試してみてください、しかし:それから(擬似シェル・スクリプトを言い訳してください)例えば、最終的な結果を返します

command | 
awk '/RE1/ {print >> "tmp1"} /RE2/ {print >> "tmp2"}' && 
{ action1 < tmp1; action2 < tmp2; rm tmp1 tmp2; } 
3

は、私は一時的に一時ファイルのカップルを作成し、このプロセスを使用すると思います。この

<command> | tee >(grep -e <RE1> | <action1>) >(grep -e <RE2> | <action2>) 
関連する問題