1

以下のコマンドを機能させようとしていますが、o/p が出力されません。

tail -f mylog.log | grep --line-buffered -Eo '<S:Envelope .+Envelope>' | xmllint --format --recover -

ただし、ファイルから同じパターンを grep して xmllint にパイプすると、次のように動作します。

grep --line-buffered -Eo '<S:Envelope .+Envelope>' tmp.xml | xmllint --format --recover -

最初のコマンドで何が欠けていますか?

4

2 に答える 2

6

これを試すことができますか(テストされていません):

tail -f mylog.log | grep -Eo '<S:Envelope .+Envelope>' | while read line; do
    echo $line | xmllint --format --recover -
done

xmllint(これはEOFが見つからないという仮説の下にあり、そのためまだ入力を待っています)

于 2011-12-29T01:43:09.223 に答える
0

このようなことを試してください-

grep --line-buffered -Eo '<S:Envelope .+Envelope>' <(tail -f mylog.log) &1> xmllint --format --recover -
于 2011-12-29T02:27:00.257 に答える