gpt4 book ai didi

linux - 如何通过管道传递 grep xmllint 结果?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:53:48 30 4
gpt4 key购买 nike

尝试使用 xmllint 来验证一堆 XML。

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

这会向标准输出输出每个文件的列表以及它是否通过验证。我希望修剪此列表并仅显示那些验证失败的文件。

我习惯于在标准输出上执行管道 grep 来过滤结果。例如,如果我执行 ls | grep "config"它将只列出名称中带有 config 的那些文件。

但出于某种原因执行上述命令后跟 | grep“失败”或| grep -v "validates"对减少抛入控制台标准输出的(大量)文本行数没有任何影响。无论如何都会显示完整列表

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

最佳答案

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

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

关于linux - 如何通过管道传递 grep xmllint 结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24269415/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com