【发布时间】:2012-05-03 22:02:10
【问题描述】:
我有几个非常大 (10GB) 的 xml 文件,其结构如下。如您所见,该文件包含一系列记录。我想做的是基于一个或多个属性的搜索记录。问题是一个简单的 grep 会给我包含该属性的行。例如,grep 可能会给我第 100 行、第 300 行等等。但是,我需要的是提取相关记录元素的能力,而不仅仅是符合匹配项的行。是否有任何 unix 实用程序可以提供帮助?
<records>
<record seq="1">
<properties>
<property name="AssetId">1234</property>
</properties>
<message>messsage1</message>
</record>
<record seq="2">
<properties>
<property name="VI-ID">4567</property>
</properties>
<message>message2</message>
</record>
<records>
【问题讨论】:
-
这里给出了很多选项:stackoverflow.com/questions/91791/… 也可以看看 xmllint(libxml2 的一部分):xmlsoft.org/xmllint.html
-
你想对提取的信息做什么?
-
如果这个问题在前一个问题的基础上增加了一件事,那就是提供了示例输入文本——这样可以更容易地提供具体、可见的建议来展示建议工具的使用情况。
-
将其保存为文件并转换为不同的格式