尝试使用xmllint验证一堆XML。
我使用命令:xmllint --noout --schema MySchema.xsd dir / * .xml
这将打印到stdout每个文件的列表以及它是否已验证或失败。我希望修剪此列表并仅显示那些无法验证的文件。
我以前能够在stdout上进行管道grep来过滤结果。例如,如果我做ls | grep" config"它将仅列出名称中包含config的文件。
但由于某种原因,执行上述命令后跟| grep"失败"或者grep -v"验证"对减少投入控制台标准输出的(大量)文本行数没有任何影响。无论
,都会显示完整列表几乎就像xmllint的输出不是管道的有效输入一样。
答案 0 :(得分:3)
xmllint可能正在打印到stderr而不是stdout。在grep之前将stderr重定向到stdout。
xmllint --noout --schema MySchema.xsd dir/*.xml 2>&1 | grep -v "validates