将非常大的 xml 文件拆分成具有特定行数的小块

将非常大的 xml 文件拆分成具有特定行数的小块

这就是我从大 xml 文件 (2gb) 中提取前 100000 行的方法:

head source.xml -n 100000 > part.xml

我怎样才能继续将它们拆分为 100000 行(或特定文件大小的块),直到整个文件被分离?

答案1

你可以使用

split -l lines_per_file --additional-suffix=.xml source.xml part

这将读取文件source.xml并将其分成lines_per_file每行的块。结果将被写入一系列文件partaa.xml,,,, ...partab.xmlpartac.xml

如果您想使用其他数量的后缀字符,可以使用该-a选项指定一个数字,例如。-a 1命名文件parta.xml, partb.xml, partc.xml, ...

如果您想拆分为文件大小的块而不是行数,则可以-b size_in_bytes使用-l lines_per_file.

请注意,生成的文件很可能是无效的 XML 文件(除非您碰巧得到一个文件作为回报,即您的输入的行/字节太少而无法拆分)。

相关内容