如何管道grep xmllint结果?

时间:2014-06-17 16:55:55

标签: linux grep pipe xmllint

尝试使用xmllint验证一堆XML。

我使用命令:xmllint --noout --schema MySchema.xsd dir / * .xml

这将打印到stdout每个文件的列表以及它是否已验证或失败。我希望修剪此列表并仅显示那些无法验证的文件。

我以前能够在stdout上进行管道grep来过滤结果。例如,如果我做ls | grep" config"它将仅列出名称中包含config的文件。

但由于某种原因,执行上述命令后跟| grep"失败"或者grep -v"验证"对减少投入控制台标准输出的(大量)文本行数没有任何影响。无论

,都会显示完整列表

几乎就像xmllint的输出不是管道的有效输入一样。

1 个答案:

答案 0 :(得分:3)

xmllint可能正在打印到stderr而不是stdout。在grep之前将stderr重定向到stdout。

xmllint --noout --schema MySchema.xsd dir/*.xml 2>&1 | grep -v "validates