我可以告诉“分割”不要分割线吗?

我可以告诉“分割”不要分割线吗?

我有一个很大的文本文件,需要将其拆分成一系列较小的文件(小于 1MB)。看来这split就是我想要的。

但是,如果我尝试以下操作(使用 900k 作为限制,在 1MB 的硬限制之前提供一些缓冲区):

split -a 2 -b 900k total.sql createtables_

它将使每个部分正好是 900k(最后一部分除外),很可能在分割文件的地方分割行。

那么,有没有办法让它只在线边界上分割?换句话说,让它让碎片尽可能接近(不超过)参数中指定的限制-b,确保它只在线边界上分割?

或者唯一的选择是使用-l基于行数的拆分选项进行拆分,然后只需使用反复试验来找到使所有文件保持在限制之下的参数?

或者说split没有使用正确的工具?

答案1

split -l是你能在本地做的最好的事情Mac OS X。 和GNU 核心实用程序,您可以使用split -C 900k。您可以在 OSX 上安装 GNU coreutils,例如通过达文波特或者芬克或者麦金塔

答案2

不确定split您使用的是哪个版本,但您尝试过该--line-bytes=BYTES选项吗?在我的系统上,它也可以输入为-C BYTES

相关内容