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

Alb*_*oss 8 text-processing split files newlines

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

split -b 1G $temp_path $final_filepath
Run Code Online (Sandbox Code Playgroud)

但唯一需要注意的是,这些文件多次包含最后一行,该行被分成 2 个文件。有没有办法避免使用split或任何其他命令?

0xS*_*dog 5

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

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

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

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

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

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

相反,试试这个:

split -C 1G $temp_path $final_filepath
Run Code Online (Sandbox Code Playgroud)

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

  • 没有足够“仔细”阅读手册页。 (2认同)