Shell命令将大文件拆分为10个较小的文件

sip*_*wiz 12 shell cygwin

我有一个csv导入文件,需要将3300万行导入我的数据库.我可以使用C#控制台应用程序导入它,但随后导入超时后运行的存储过程.因此,我想将文件拆分为10个较小的文件.

我可以在C#中做到这一点,但我怀疑使用shell实用程序有更好的方法.我安装了cygwin,可以使用所有常见的Linux shell实用程序.我可以用来分割文件的整齐的命令组合吗?

Pau*_*l R 23

使用split- 例如,每隔340万行拆分一个文件(应该给你10个文件):

split -l 3400000

$ man拆分


m1k*_*3y3 10

按行分割是好的,但你也可以按大小分割

从原始文件创建1MB文件

split -b 1024k <file_name> 
Run Code Online (Sandbox Code Playgroud)

创建1GB的原始文件

split -b 1024m <file_name>
Run Code Online (Sandbox Code Playgroud)