Text-Processing

根據大小拆分文件,但確保以換行符結尾

  • February 24, 2021

我能夠split成功使用該命令將大文件拆分為多個小文件。這是通過以下命令實現的

split -b 1G $temp_path $final_filepath

但唯一需要注意的是,這些文件多次包含最後一行,該行被拆分為 2 個文件。有沒有辦法避免使用split或任何其他命令?

是的,不要使用-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

-C標誌並非在所有版本的 split 上都可用(尤其是 OS X / Darwin)。在這種情況下,您可以使用HomebrewMacPortsgsplit上的 GNUcoreutils包中提供的。

引用自:https://unix.stackexchange.com/questions/355674