L'option -d pour le fractionnement est illégale sur OS X 10.9

15

J'ai un script bash qui fonctionne sur Ubuntu mais pour OS X 10.9 j'obtiens l'erreur pour la commande split:

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

split: illegal option -- d .

Selon la page man split, -dest

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

Existe-t-il une solution pour cela?

mirt
la source

Réponses:

30

La version GNU de split est différente de la version OS X de split .

OS X est basé sur BSD Unix et Linux (souvent appelé GNU / Linux) utilise le jeu d'outils GNU.

La version GNU de split fait partie des coreutils , et la bonne nouvelle est que ceux-ci sont disponibles dans MacPorts. Si MacPorts est installé, vous pouvez installer le port coreutils à l'aide de la commande:

sudo port install coreutils

Cela installe les utilitaires GNU core (y compris split) avec un gpréfixe, vous appelez donc split à l'aide de la commande gsplit.

Scott Earle
la source
4
Bien que je sache qu'il est possible d'installer les coreutils avec les noms par défaut, je ne le recommanderais jamais car tous les scripts écrits pour OS X supposent que les outils BSD ont les noms «originaux».
Scott Earle
8
Les coreutils sont également disponibles via homebrew (également avec un préfixe 'g'):brew install coreutils
Karl Bartel
@ScottEarle vous ne devriez pas écrire bash pour OSX. Quoi qu'il en soit, vous pouvez contourner cela en utilisant un autre shell sur iTerm et en chargeant un fichier bash_aliases distinct, en laissant le système seul
Ray Foss