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

将大文件拆分为小文件,每个文件中有n行[关闭]

  •  1
  • iamabhaykmr  · 技术社区  · 7 年前

    我需要使用bash将一个大文件拆分成一个小文件。 例如,假设一个大的.txt文件有10000行文本数据。 我想把它分成500个文件,名为file01,file02,file03,…,file99,file100,…,file499,file500。每个文件包含20行。

    我正在使用以下命令

    split --additional-suffix=.txt --numeric-suffixes=1 -l 20 large.txt file

    上面的命令只创建99个文件(file01,file02,…..,file99)。应该有10000/20=500个文件。我不知道哪里出了问题。

    任何领导都非常感谢。谢谢

    2 回复  |  直到 7 年前
        1
  •  3
  •   oliv    7 年前

    你需要选择 -a 把索引放在3位数上。

    split --additional-suffix=.txt --numeric-suffixes=1 -l 20 -a 3 large.txt file
    

    默认的索引长度是2位数,在500之前不适合索引。

    如中所述 split --help :

    -a、 --后缀长度=N生成长度为N的后缀(默认为2)

        2
  •  0
  •   iamabhaykmr    7 年前

    谢谢@oliv的解释。下面的类似命令也可以工作(它用四位数字命名文件,如-a是4,从0000开始)

    split --additional-suffix=.txt -d -l 20 -a 4 message.txt file

    (这里是-d,默认从0000开始命名文件。我们可以使用--numeric后缀=1,从0001开始)

    推荐文章