Linux   发布时间:2022-04-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了如何使用linux csplit来切割大量的XML文件?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

我有一个巨大的(4GB) XML文件,我目前正在使用linux“split”函数(每25,000行 – 不是字节)分成块.这通常很有效(我最终得到了大约50个文件),除了一些数据描述有换行符,因此块文件经常没有正确的结束标记 – 而且我的解析器在处理过程中中途窒息. 示例文件:(注意:通常每个“列表”xml节点应该在它自己的行上) <?xml version="1.0" encoding="UTF
我有一个巨大的(4GB) XML文件,我目前正在使用linux“split”函数(每25,000行 – 不是字节)分成块.这通常很有效(我最终得到了大约50个文件),除了一些数据描述有换行符,因此块文件经常没有正确的结束标记 – 而且我的解析器在处理过程中中途窒息.

示例文件:(注意:通常每个“列表”xml节点应该在它自己的行上)

<?xml version="1.0" encoding="UTF-8"?>
<lisTings>
<lisTing><date>2009-09-22</date><desc>This is a description WITHOUT line breaks and works fine with split</desc><more_tags>stuff</more_tags></lisTing>
<lisTing><date>2009-09-22</date><desc>This is a really
Annoying description field
WITH line breaks 
that screw the split function</desc><more_tags>stuff</more_tags></lisTing>
</lisTings>

然后有时我的分裂最终会像

<?xml version="1.0" encoding="UTF-8"?>
<lisTings>
<lisTing><date>2009-09-22</date><desc>This is a description WITHOUT line breaks and works fine with split</desc><more_tags>stuff</more_tags></lisTing>
<lisTing><date>2009-09-22</date><desc>This is a really
Annoying description field
WITH line breaks ... 
EOF

所以 – 我一直在阅读“csplit”,听起来它可能有助于解决这个问题.我似乎无法正确表达正确的表达……

基本上我想要〜50ish文件的相同输出

就像是:

*csplit -k myfile.xml '/</lisTing>/' 25000 {50}

任何帮助都会很棒
谢谢!

解决方法

您无法以这种方式获得有效的XML文件.我建议您使用StaX编写一个java程序,如果您使用woodstox实现,它将非常快速地流入和传输XMl.

大佬总结

以上是大佬教程为你收集整理的如何使用linux csplit来切割大量的XML文件?全部内容,希望文章能够帮你解决如何使用linux csplit来切割大量的XML文件?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。