2010-11-08 57 views
11

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

我可以在C#中完成,但我怀疑使用shell实用程序有更好的方法。我安装了cygwin,可以使用所有常见的Linux shell实用程序。有没有我可以用来分割文件的整齐的小命令组合?

+0

什么数据库?与主要的那些有进口实用程序,你可以用它来使这更容易。 – kemiller2002 2010-11-08 21:54:53

回答

21

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

split -l 3400000

$ man split

2

中的coreutils 8.8分割的版本(尚未公布)将有命令

split -n l/10 

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

9

按行i分割很好,但是你也可以按大小分成

创建1MB的文件淘汰原有

split -b 1024k <file_name> 

的创建1GB的文件从原来的

split -b 1024m <file_name> 
0

如果您的CSV文件有500行分体式两种部分(250 + 250)

下载并安装“Cygwin终端”

放置注释“split -l 250 filename.csv”

相关问题