опция -d для разделения недопустима в OS X 10.9

15

У меня есть скрипт bash, который работает в Ubuntu, но для 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

Есть ли обходной путь для этого?

Мирт
источник

Ответы:

30

Версия GNU раскола отличается от версии OS X раскола .

OS X основана на BSD Unix, а Linux (часто называемый GNU / Linux) использует набор инструментов GNU.

Версия split для GNU является частью coreutils , и хорошая новость заключается в том, что они доступны в MacPorts. Если у вас установлен MacPorts , вы можете установить порт coreutils с помощью команды:

sudo port install coreutils

Это устанавливает основные утилиты GNU (включая split) с gпрефиксом, поэтому вы вызываете split с помощью команды gsplit.

Скотт Эрл
источник
4
Хотя я знаю, что можно установить coreutils с именами по умолчанию, я бы никогда не рекомендовал его, поскольку все сценарии, написанные для OS X, предполагают, что инструменты BSD имеют «оригинальные» имена.
Скотт Эрл
8
Coreutils также доступны через homebrew (также с префиксом «g»):brew install coreutils
Карл Бартель
@ ScottEarle хорошо, вы не должны писать bash для OSX. В любом случае, вы можете обойти это, используя альтернативную оболочку в iTerm и загрузив отдельный файл bash_aliases, оставив систему в покое
Ray Foss