我有一些包含混合二进制和xml数据的大文件。我想提取在文件中有多个事件的2个XML标签之间的所有值。模式如下:<C99><F1>050</F1><F2>random value</F2></C99>
。部分XML数据没有格式化,所有内容都在一行中。如何提取2个已知字符串之间的值
我需要<F1>
和</F1>
之间的所有值从<C99>
其中值范围050和999(<F1>
下等领域中也存在,但我需要从C99 F1的唯一值)之间。我需要对它们进行计数,看看有多少C99的F1值在0到999之间。
我想要一个提示,我可以如何轻松获取并提取这些值(使用cat和grep?或sed?)。一旦将值导出到文件中,排序和计数就很容易完成。
我的临时解决方案:
从文件中删除所有的二进制数据后,我可以运行下面的命令:
cat filename | grep -o "<C99><F1>......." > file.txt
这将导出所有字符串第12个字符开始<C99><F1>.
<C99><F1>001
<C99><F1>056
<C99><F1>123
<C99><F1>445
.....
一旦以文本文件形式导出,我将其替换为<C99><F1>
,然后对剩余值进行排序和计数。
谢谢!
这可能会带来太多的downvotes,除非你显示至少一些努力和尝试解决你自己的问题 –
使用任何XMLParser的 –
它不会使用XML解析工作,因为在二进制格式的一些数据,我不无论如何需要它。 – spiderpc