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

时间:2010-11-08 21:52:24

标签: shell cygwin

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

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

4 个答案:

答案 0 :(得分:23)

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

split -l 3400000

$ man split

答案 1 :(得分:10)

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

从原始

创建1MB文件
split -b 1024k <file_name> 

从原始

创建1GB文件
split -b 1024m <file_name>

答案 2 :(得分:2)

coreutils 8.8中的拆分版本(尚未发布)将具有命令

split -n l/10

现在,您需要为每个文件指定特定数量的行

答案 3 :(得分:1)

如果你的csv文件有500行来拆分两部分(250 + 250)

下载并安装&#34; Cygwin Terminal&#34;

发表评论&#34;拆分-l 250 filename.csv&#34;