根据大小拆分文件,但确保它以换行符结尾

根据大小拆分文件,但确保它以换行符结尾

我能够split成功使用该命令将大文件拆分为多个较小的文件。这是通过以下命令实现的

split -b 1G $temp_path $final_filepath

但唯一需要注意的是,这些文件很多时候都包含最后一行,该行分为两个文件。有什么方法可以避免使用split或任何其他命令?

答案1

是的,不要使用该-b参数。来自split(1) 手册页

-b, --bytes=SIZE 每个输出文件放置 SIZE 字节

-C, --line-bytes=SIZE 每个输出文件最多放置 SIZE 字节的行

-l, --lines=NUMBER 每个输出文件放置 NUMBER 行

通过使用,-b您可以告诉 split 以特定大小(以字节(或 Kb 或 MB)为单位)划分文件。如果那是一条线的中间,那就太糟糕了。

Split 支持“行数”和“由整行组成的最大输出文件大小”。

相反,试试这个:

split -C 1G $temp_path $final_filepath

-C标志并非在所有版本的 split 上都可用(特别是 OS X / Darwin)。在这种情况下,您可以使用gsplitGNUcoreutils软件包中提供的自制Mac端口

相关内容