我正在尝试使下面的命令正常工作但是没有打印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 -
我在第一个命令中缺少什么?
答案 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 -