【发布时间】:2012-07-11 11:48:42
【问题描述】:
试图找出最好的方法(通过使用我在 Grep / Sed / Awk 中所知道的)来根据它的单个字符串(键?)分割 XML 文件。我有一个 XML 文件,它是我当前所有常见问题解答条目的 SQL 转储,因此它包含一个条目 ID,然后是一个相当大的 HTML 格式文档。我希望将这些条目分开,以便我可以轻松地将它们弹出到编辑器中并清理格式以导入新的 KB / FAQ 系统。这是我的数据示例:
<article id="3">
<language>en</language>
<category>Category Name</category>
<keywords>Keywords, by, comma</keywords>
<question>Question?</question>
<answer>HTML Formatting</answer>
<author>Author</author>
<data>2010-05-13 09:32</data>
</article>
XML 文件包含我拥有的每一篇以这种格式背靠背的知识库文章。我对 bash 很满意,只是不知道如何根据搜索将其拆分为多个文件。
干杯,
粘土
【问题讨论】:
-
编写一些简短的 php/perl/python 脚本来解析您的 XML 并将其写入不同的文件会容易得多。
-
您可以在此处找到针对类似问题的简短 perl 解决方案:stackoverflow.com/questions/8061475/… 也有一些使用 sed 或 awk 的尝试看起来是可行的选择。
-
您也许能够在 GNU awk 中使用多行 RS 模式做一些事情,但我无法让它在临时测试中工作。 sed 多行模式将比它的价值更麻烦。你最好的选择是 Perl、Python 和 Ruby,除非你喜欢做一些事情,比如仅仅为了挑战而使用 PyX。