+
95
-

回答

windows下写一个批处理spit.bat

@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文件,限制为2万行。您要做的就是相应地更改!file!和!limit!变量。希望能帮助到你。

linux下很简单

split -l 5000 ../sample.csv -d -a 4 sample_

在Linux中,可以使用split 命令来分割文件,具体格式为:split [options] file [prefix].

其中 options为可选参数, 最后一个参数prefix是为分割后的文件指定文件名前缀.

-b: 根据文件大小分割,分割后文件大小可以为:k (KB), M (MB), G (GB), c (byte), w (word)等...

-l: 根据行数来分割.

-d: 指定以数字为后缀.

-a length: 指定长度为length的后缀.

file: 待分割文件.

例如:

命令 split -b 20k example.txt -d -a 3 split_file

表示分割文件example.txt,每个文件大小为20k, 并且以分割后文件以split_file加三位数字为前缀命名.


网友回复

我知道答案,我要回答