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 回答