Grep和Sed的等效XML命令行处理

12 浏览
0 Comments

Grep和Sed的等效XML命令行处理

在进行shell脚本编写时,通常数据会以单行记录的形式存储在文件中,比如csv格式。使用grepsed处理这些数据非常简单。但是我经常需要处理XML数据,所以我非常希望能够通过命令行脚本访问XML数据。有哪些最好的工具可以实现这个功能?

0
0 Comments

问题的出现原因是需要在命令行上处理XML文件,但是传统的grep和sed命令不能直接处理XML文件。为了解决这个问题,可以使用xml2和2xml命令对XML文件进行处理。xml2命令可以将XML文件转换为一种适合使用字符串编辑工具处理的格式,而2xml命令则可以将处理后的文件重新转换为XML格式。

在示例中,通过使用xml2命令可以将q.xml文件转换为以下格式:

/foo=

/foo= text

/foo= more text

/foo=

/foo/textnode=ddd

/foo/textnode

/foo/textnode/=bv

/foo/textnode=dsss

/foo=

/foo= asfdasdsa <foo> sdfsdfdsf <bar>

/foo=

接着,可以使用grep和sed命令对转换后的文件进行处理。例如,使用grep命令可以匹配包含"textnode"的行,然后使用sed命令将"/foo"替换为"/bar/baz"。最后,再使用2xml命令将处理后的文件转换为XML格式。

最后,其他用户也提到了类似的工具,如html2和2html,可以用于处理HTML文件。而pyxie格式可能不如xml2格式有用,因为xml2提供了嵌套XML元素的完整路径,从而可以进行更方便的行匹配和替换。另外,有用户提到通过将XML换行符替换为实体(&#10;)可以将记录放在同一行上,但这可能不如使用xml2和2xml命令方便。

0
0 Comments

在这段内容中,主要讨论了在处理XML命令行时的一些工具,包括nokogiri、hpricot、fxgrep、LT XML、xmlgrep2、XQSharp、xml-coreutils、xmldiff和xmltk。作者提到了这些工具的特点和用途。

问题的出现主要是因为在命令行处理XML时,常用的grep和sed命令并不适用于XML格式。因此,需要寻找替代工具来解决这个问题。

解决方法是使用上述提到的工具之一,根据实际需求选择合适的工具来处理XML命令行。其中,xml-coreutils被认为是最好文档化和最符合UNIX风格的工具。此外,也可以考虑使用其他工具来创建一个包装脚本,将参数传递给相应的工具来处理XML。

这篇文章介绍了一些用于处理XML命令行的工具,并提供了解决方法和建议。

0
0 Comments

Grep and Sed Equivalent for XML Command Line Processing

在命令行处理XML时,我们经常需要使用类似于grep和sed的工具来搜索和操作XML文件。然而,传统的grep和sed命令对于XML文件的处理并不够灵活。因此,我们需要一种能够提供类似功能的工具。

幸运的是,我发现了xmlstarlet这个工具,它非常适合处理这类问题。你可以在http://xmlstar.sourceforge.net/上找到它,而且它应该在大多数发行版的软件库中都可以找到。如果你对xmlstarlet还不熟悉,可以参考这里的入门教程

另外,我要指出的是,Sourceforge网站上也提供了Windows平台的可执行文件。

尽管xmlstarlet不支持XQuery,但它在原始XPath的基础上添加了一些功能,足以与grep和sed媲美。如果你需要更高级的功能,比如XQuery,那可能需要像perl或awk一样,使用XML的等价物。

当我们需要在命令行处理XML文件时,传统的grep和sed命令并不适用。幸运的是,有一种工具叫做xmlstarlet可以满足我们的需求。虽然它不支持XQuery,但它提供的功能足以与grep和sed媲美。如果你需要更高级的功能,可以考虑使用XML的等价物,比如perl或awk。

0