我有一个非常大的.csv文件(> 500mb),我希望在命令提示符中将其分解为更小的.csv文件.(基本上试图在Windows中找到Linux"拆分"功能".
这必须是批处理脚本,因为我的机器只安装了Windows并且请求软件很痛苦.我遇到了许多示例代码(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!
和!limit!
变量.希望能帮助到你.
使用cgwin命令SPLIT.样本 - 每500行计算一个文件:split -l 500 [filename.ext]
更多:split --help
一个免费的Windows应用程序,这样做
http://www.addictivetips.com/windows-tips/csv-splitter-for-windows/