-d选项在OS X 10.9上是非法的


15

我有可以在Ubuntu上运行的bash脚本,但对于OS X 10.9,我得到split命令错误:

split -b 1000000 -a 3 -d $F $F && rm $F || { echo "Error: 'split' command not installed" ; exit 1 ; }

split: illegal option -- d .

根据拆分的手册页,-d

   -d, --numeric-suffixes
          use numeric suffixes instead of alphabetic

是否有解决方法?

Answers:


30

分裂的GNU版本是不同的分裂的OS X版本

OS X基于BSD Unix,Linux(通常称为GNU / Linux)使用GNU工具集。

GNU版本的split是coreutils的一部分,好消息是MacPorts中提供了这些工具。如果安装了MacPorts,则可以使用以下命令安装coreutils端口:

sudo port install coreutils

这会安装带有g前缀的GNU核心实用程序(包括split),因此您可以使用command调用split gsplit


4
虽然我知道可以使用默认名称安装coreutils,但我永远不建议这样做,因为为OS X编写的所有脚本均假定BSD工具具有“原始”名称。
Scott Earle 2014年

8
也可以通过自制程序(也带有“ g”前缀)获得coreutils:brew install coreutils
Karl Bartel 2015年

@ScottEarle好吧,您不应该为OSX写bash。无论如何,您都可以通过在iTerm上使用备用Shell并加载单独的bash_aliases文件来解决该问题,而使系统独自存在
Ray Foss
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.