将大文件拆分为较小的文件,每个文件中有n行

时间:2018-08-17 06:33:07

标签: linux bash unix subprocess sh

我需要使用bash将大文件拆分为小文件。 例如,假设large.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 个答案:

答案 0 :(得分:3)

您需要选择-a才能使索引为3位数字。

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

默认索引长度是2位数字,直到500才适合索引。

split --help中所述:

  

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

答案 1 :(得分:0)

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

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

(默认情况下,-d从0000开始命名。我们可以使用--numeric-suffixes = 1,从0001开始)