提取XML块我有一个看起来像一个日志文件中的以下内容:如何从日志文件在Linux上
2010-05-12 12:23:45 Some sort of log entry
2010-05-12 01:45:12 Request XML: <RootTag>
<Element>Value</Element>
<Element>Another Value</Element>
</RootTag>
2010-05-12 01:45:32 Response XML: <ResponseRoot>
<Element>Value</Element>
</ResponseRoot>
2010-05-12 01:45:49 Another log entry
我想要做的是提取请求和响应XML(最终甩掉他们到他们自己的单个文件中)。我有一个使用egrep的类似解析器,但是XML全部在一行上,而不是像上面那样的多个。
日志文件也有点大,打日志500-600兆。较小的日志,我会通过PHP脚本读入并使用正则表达式匹配,但是如此庞大的文件所需的内存量可能会导致脚本不可用。
有没有一种简单的方法使用Linux机器上的内置工具(在这种情况下是CentOS)来提取多行文件,或者我将不得不硬着头皮用Perl或PHP读取整个文件提取它?
真的没有理由不能用PHP来完成。当然,你不能将整个日志加载到内存中,你必须以流的方式对其进行扫描。 – Artefacto 2010-05-14 02:01:20