尾管grep管xmllint不工作

时间:2011-12-28 21:06:42

标签: grep pipe tail xmllint

我正在尝试使下面的命令正常工作但是没有打印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 -

我在第一个命令中缺少什么?

2 个答案:

答案 0 :(得分:6)

你可以尝试这个(未经测试):

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

(假设xmllint没有找到EOF,因此仍在等待输入)

答案 1 :(得分:0)

尝试这样的事情 -

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