-d opcja podziału jest nielegalna w OS X 10.9

15

Mam skrypt bash, który działa na Ubuntu, ale dla OS X 10.9 pojawia się błąd polecenia split:

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

split: illegal option -- d .

Według podzielonej strony podręcznika, -djest

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

Czy można to obejść?

mirt
źródło

Odpowiedzi:

30

Wersja GNU Split różni się od wersji OS X Splitu .

OS X oparty jest na BSD Unix, a Linux (często nazywany GNU / Linux) korzysta z zestawu narzędzi GNU.

Wersja split GNU jest częścią coreutils , a dobrą wiadomością jest to, że są one dostępne w MacPorts. Jeśli masz zainstalowane MacPorts , możesz zainstalować port coreutils za pomocą polecenia:

sudo port install coreutils

To instaluje podstawowe narzędzia GNU (w tym split) z gprefiksem, więc wywołujesz split za pomocą polecenia gsplit.

Scott Earle
źródło
4
Chociaż wiem, że możliwe jest zainstalowanie coreutils z domyślnymi nazwami, nigdy nie poleciłbym tego, ponieważ wszystkie skrypty napisane dla OS X zakładają, że narzędzia BSD mają „oryginalne” nazwy.
Scott Earle
8
Coreutils są również dostępne za pośrednictwem homebrew (również z prefiksem „g”):brew install coreutils
Karl Bartel
@ScottEarle dobrze, że nie powinieneś pisać bash dla OSX. Niezależnie od tego można to obejść, używając alternatywnej powłoki na iTerm i ładując osobny plik bash_aliases, pozostawiając system w spokoju
Ray Foss