使用 macOS 版本的 split 包将文件拆分为 4 个块

使用 macOS 版本的 split 包将文件拆分为 4 个块

在 GNU/Linux 中,为了将文件分割成 4 个相等的块,我们可以这样做:

split temp -n 4 PREFIX_

但 macOS 的 BSD 版本的split实用程序似乎没有-n选项。 macOS 中 GNU split 命令的模拟是什么?

答案1

不幸的是,MacOS 包含有缺陷的 BSD 版本的 coreutils。 Head 也不支持负字节计数,而它的 GNU 模拟允许执行类似head -c -1.

我最终在 MacOS 上安装了 GNU 版本的 coreutils:

brew install coreutils

这将安装所有 coreutils,包括带有前缀的 split 和 head g。所以现在我可以这样做:

gsplit ${file} -n 4 PREFIX_

ghead -c -1 ${file}

答案2

您可以找到文件的大小并将其除以 4,然后使用 MacOS 的split -b字节数来代替。我没有办法测试这个,但宽松的是:

#!/bin/bash
file=myfile
size=$(stat -f '%z' "$myfile")
let part=size/4
[ "$part" = 0 ] && part=1
split -b "$part" "$myfile" ...

我不知道当大小低于 4 个字节并且你说 时会发生什么split -b 0,所以将其设置为 1。请参阅手册页分裂统计数据

相关内容