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?

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.


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
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.