试图使用xmllint来验证一堆XML。
我使用以下命令: xmllint --noout --模式MySchema.xsd dir/*..xml
这将打印出每个文件的列表,以及它是否已验证或失败。我希望删除这个列表,只显示那些无法验证的文件。
我习惯于在stdout上做管道grep来过滤结果。例如,如果我做ls \ grep " config“,它将只列出名称中包含config的那些文件。
但是,出于某种原因,执行上面的命令(后面跟着"fails“),或者执行"validates”(验证),对于减少抛入控制台stdout的(大量)文本行数,都没有任何效果。完整的列表是不受影响的。
这就好像来自xmllint的输出对于管道来说是无效的输入。
发布于 2014-06-17 17:05:49
xmllint可能是打印到stderr而不是stdout。在grep之前将stderr重定向到stdout。
xmllint --noout --schema MySchema.xsd dir/*.xml 2>&1 | grep -v "validateshttps://stackoverflow.com/questions/24269415
复制相似问题