如何在 Mac 上使用现代 coreutils?

Chr*_*ris 2 coreutils csplit macos

如何在 Mac 上获取现代 coreutils?


我使用以下方法遇到了这个问题csplit

foo.txt:

foo
1
foo
2
foo
3
Run Code Online (Sandbox Code Playgroud)
$: csplit foo '^foo$' '{*}'
# error
Run Code Online (Sandbox Code Playgroud)

仔细检查Mac 上的manpage, man csplit,csplit是 FreeBSD 版本,并且不提供该'{*}'选项。事实上,我必须提前提供准确的分割次数。这要么会触发czplit我重新实现,要么我可以GNU coreutils在 mac 上登录。

有办法吗?

Kus*_*nda 5

GNU coreutils 可以通过 Homebrew 等安装在 macOS 上。

假设已经完成 Homebrew 的初始安装(请参阅https://brew.sh), coreutils 将安装

brew install coreutils
Run Code Online (Sandbox Code Playgroud)

Homebrew 将为g与 macOS 基本系统实用程序冲突的实用程序添加前缀,以便您获得glsgcpgcsplit等。

要访问不带前缀的GNU coreutils g,您可以将该$HOMEBREW_PREFIX/opt/coreutils/libexec/gnubin目录添加到您的PATH.