Opsi -d untuk split ilegal di OS X 10.9

15

Saya memiliki skrip bash yang berfungsi pada Ubuntu tetapi untuk OS X 10.9 saya mendapatkan error untuk perintah split:

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

split: illegal option -- d .

Menurut halaman manual split, -dadalah

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

Apakah ada solusi untuk ini?

mirt
sumber

Jawaban:

30

The versi GNU split berbeda dengan versi OS X split .

OS X didasarkan pada BSD Unix, dan Linux (sering disebut sebagai GNU / Linux) menggunakan GNU toolset.

Versi GNU dari split adalah bagian dari coreutils , dan kabar baiknya adalah ini tersedia di MacPorts. Jika Anda menginstal MacPorts , Anda dapat menginstal port coreutils menggunakan perintah:

sudo port install coreutils

Ini menginstal utilitas inti GNU (termasuk split) dengan gawalan, jadi Anda memanggil split menggunakan perintah gsplit.

Scott Earle
sumber
4
Walaupun saya tahu adalah mungkin untuk menginstal coreutils dengan nama default, saya tidak akan merekomendasikannya karena semua skrip yang ditulis untuk OS X mengasumsikan bahwa alat BSD memiliki nama 'asli'.
Scott Earle
8
Coreutils juga tersedia melalui homebrew (juga dengan awalan 'g'):brew install coreutils
Karl Bartel
@ScottEarle baik Anda seharusnya tidak menulis bash untuk OSX. Apa pun itu, Anda dapat menyiasatinya dengan menggunakan shell alternatif pada iTerm dan memuat file bash_aliases yang terpisah, membiarkan sistemnya sendiri
Ray Foss