【发布时间】:2016-09-06 02:28:59
【问题描述】:
我有一个大文本文件,我想将其拆分为较小的文件,每个文件的行数和数字后缀相同。我知道我可以像这样使用 split 命令:
split -d -l 2000 myBigFile.txt
但是,这个命令会产生file.00, file.01之类的东西。我想要file.1, file.2, ..., file.10, ...,即从1开始,后缀中没有0前缀。
相关问题:不指定每个文件的行数,我可以使用split命令指定输出文件的数量吗(每个文件的行数会自动计算)?
我该怎么做?
【问题讨论】:
-
你为什么要那个?当您
ls文件或cat它们时,它们现在将出现故障(file.1、file.10、file.2等)。这就是为什么填充为零的原因。 -
相关问题:阅读
man页面:“-n, --number=CHUNKS 生成 CHUNKS 输出文件。见下文 [...] CHUNKS 可能是:N 拆分为 N 个文件基于输入的大小 K/N"。 -
我不确定您是否可以避免使用数字 0。如果您的大文件最多有 10 个单位,使用
csplit -k -n 1 -f file. myBigfile.txt file 2000 '{9}'可能会起作用,但-n 1(在 Mac OS X 上)会停止生成文件当它需要file.10。最多 100 个,您可以使用-n 2但这会在前十个文件中给出前导零。它仍然给你file.00,而且第一个输出文件有一个奇怪的错误——所以这不是一个令人满意的答案。
标签: bash unix split command-line-interface