我有一个非常大的 .csv 文件(>500mb),我希望在命令提示符下将其分解为较小的 .csv 文件。 (基本上是试图在Windows中找到Linux“分割”功能”。
这必须是一个批处理脚本,因为我的机器只安装了 Windows,并且请求软件很痛苦。我遇到了一些示例代码(http://forums.techguy.org/software-development/1023949-split-100000-line-csv-into.html http://forums.techguy.org/software-development/1023949-split-100000-line-csv-into.html),但是,当我执行批处理时它不起作用。当我要求它每 20 000 行解析一次时,我得到的只是一个只有 125kb 的输出文件。
有没有人遇到过类似的问题,你是如何解决这个问题的?
试试这个:
@echo off
setLocal EnableDelayedExpansion
set limit=20000
set file=export.csv
set lineCounter=1
set filenameCounter=1
set name=
set extension=
for %%a in (%file%) do (
set "name=%%~na"
set "extension=%%~xa"
)
for /f "tokens=*" %%a in (%file%) do (
set splitFile=!name!-part!filenameCounter!!extension!
if !lineCounter! gtr !limit! (
set /a filenameCounter=!filenameCounter! + 1
set lineCounter=1
echo Created !splitFile!.
)
echo %%a>> !splitFile!
set /a lineCounter=!lineCounter! + 1
)
如上面的代码所示,它将原始csv文件分割成多个csv文件,限制为20000行。您所要做的就是更改!file!
and !limit!
相应地变化。希望能帮助到你。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)