2010-11-08 293 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」

相關問題