如何在命令行上突出显示 XML?

如何在命令行上突出显示 XML?

我怎样才能将 XML 从 stdin (例如通过管道xmllint --format)突出显示到 stdout?

我知道如何在nano和中使突出显示工作view,但是是否有仅输出到标准输出并退出的东西?

我想要做的就是输入类似

xmllint --format xmlfile.xml | some-highlighter

或者对于大文件

xmllint --format xmlfile.xml | some-highlighter | less

并获得漂亮的输出。

答案1

超级猫格卡特(grc) 可以进行管道语法高亮。您可能需要制作或查找 XML 配置文件。它们都可以在 Ubuntu 存储库以及提供的链接中找到。

皮格门蒂包含 XML 突出显示。它可在 Ubuntu 存储库中作为“python-pygments”使用,也可以使用easy_install Pygments

xmllint --format xmlfile.xml | pygmentize -l xml | less

答案2

这就是你使用的方法GNU 源代码突出显示更少:

源突出显示 -i /tmp/foo.xml -f esc | less -r

答案3

我发现强调在 Homebrew for OSX 中,我相信它在 Ubuntu 存储库中可用。它可以突出显示并输出为多种格式,包括终端输出。

答案4

您可以尝试我的命令行工具 xmq (https://libxmq.org) 以漂亮的打印和语法突出显示 XML 和 HTML。请注意,它以 XMQ 格式呈现 XML/HTML/JSON,这更易于阅读和编辑。但是 XMQ 和 XML 之间存在 1-1 映射。该工具对于分析大型 xml 和 html 文件非常有用。

xmq 工具还包括一个终端寻呼机: xmq xmlfile.xml page

该工具还可以呈现为临时 html 文件,该文件会自动在您的默认浏览器中查看: xmq xmlfile.xml browse

它从终端背景颜色(浅色或深色)中选择配色方案,但您可以覆盖它:

XMQ_BG=dark xmq xmlfile.xml browse

XMQ_BG=light xmq xmlfile.xml browse

它也可以在管道中工作: curl https://slashdot.org | xmq delete //script delete //style page

除了删除 xpath 匹配的节点之外,还有其他命令可以转换为 xmq/xml/html/json 并将转换应用于内容。

相关内容