使用命令行实用程序在 UNIX 中解析 XML、JSON 和较新的数据文件格式

使用命令行实用程序在 UNIX 中解析 XML、JSON 和较新的数据文件格式

Unix 环境有一些优秀的工具用于解析各种形式的文本。然而,最近,数据不再像以前那样采用传统(历史)格式(CSV、TSV、基于记录或其他基于分隔符的格式)。如今,数据以 XML/JSON 等结构化格式进行交换。

我知道有一些很好的工具,例如 sed、awk 和 Perl,它们几乎可以处理任何形式的数据。然而,要处理这种结构化数据,通常必须编写一个完整的程序,并且由于提取信息的时间很少,因此必须坐下来弄清楚想要查询和放置的内容的整个逻辑以编程方式将其关闭。有时这是不行的——主要是因为从这些文件中提取的信息充当进一步工作的输入;还因为搜索合适的解决方案并对其进行编码需要时间。需要一个带有足够开关的命令行工具来查找、查询和转储数据。

我正在寻找能够获取 XML/JSON 或其他形式的结构化数据并将其转储为其他格式(如 csv 等)的工具,以便从那里可以使用其他命令从中获取任何信息。

您知道是否有任何命令行实用程序可以完成此类工作?是否已经有可用的 awk/Perl 脚本?

答案1

对于 xml 有http://xmlstar.sourceforge.net/

XMLStarlet 是一组命令行实用程序(工具),可用于使用一组简单的 shell 命令来转换、查询、验证和编辑 XML 文档和文件,其方式与使用 UNIX grep、sed、 awk、diff、patch、join 等命令。

您还可以使用xsltproc类似的工具(saxon)。

对于 json:我也认为最好只使用 python、ruby、perl 并对其进行转换。

答案2

我想 Perl、Python 或 Ruby 模块都可以成功地用于此目的。其中任何一个都可以用于编写脚本。

相关内容