代码之家  ›  专栏  ›  技术社区  ›  sipsorcery

shell命令将大文件拆分为10个小文件

  •  12
  • sipsorcery  · 技术社区  · 14 年前

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

    我可以在C中完成,但我怀疑使用shell实用程序有更好的方法。我已经安装了cygwin,可以使用所有常见的Linuxshell实用程序。我是否可以使用一些简单的命令组合来分割文件?

    4 回复  |  直到 7 年前
        1
  •  23
  •   Paul R    14 年前

    使用 split -例如,每340万行拆分一个文件(应提供10个文件):

    split -l 3400000

    $ man split

        2
  •  10
  •   m1k3y3    12 年前

    按行拆分很好,但也可以按大小拆分

    从原始文件创建1MB文件

    split -b 1024k <file_name> 
    

    从原始文件创建1GB文件

    split -b 1024m <file_name>
    
        3
  •  2
  •   pixelbeat    14 年前

    coreutils 8.8中的split版本(尚未发布)将具有以下命令

    split -n l/10
    

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

        4
  •  1
  •   selva kumar    7 年前

    如果csv文件有500行要拆分为两部分(250+250)

    下载并安装“cygwin终端”

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