Die Option -d zum Teilen ist unter OS X 10.9 unzulässig

15

Ich habe ein Bash-Skript, das unter Ubuntu funktioniert, aber für OS X 10.9 erhalte ich den Fehler für den Split-Befehl:

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

split: illegal option -- d .

Laut der geteilten Manpage -dist

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

Gibt es eine Problemumgehung dafür?

mirt
quelle

Antworten:

30

Die GNU-Version von split unterscheidet sich von der OS X-Version von split .

OS X basiert auf BSD Unix und Linux (oft als GNU / Linux bezeichnet) verwendet das GNU-Toolset.

Die GNU-Version von split ist Teil der Coreutils , und die gute Nachricht ist, dass diese in MacPorts verfügbar sind. Wenn Sie MacPorts installiert haben, können Sie den Coreutils- Port mit dem folgenden Befehl installieren :

sudo port install coreutils

Dadurch werden die GNU-Kerndienstprogramme (einschließlich split) mit einem gPräfix installiert , sodass Sie split mit dem Befehl aufrufen gsplit.

Scott Earle
quelle
4
Obwohl ich weiß, dass es möglich ist, die Coreutils mit den Standardnamen zu installieren, würde ich es niemals empfehlen, da alle für OS X geschriebenen Skripte davon ausgehen, dass die BSD-Tools die 'ursprünglichen' Namen haben.
Scott Earle
8
Die Coreutils sind auch über Homebrew erhältlich (auch mit einem 'g'-Präfix):brew install coreutils
Karl Bartel
@ScottEarle Nun, Sie sollten keine Bash für OSX schreiben. Unabhängig davon können Sie dies umgehen, indem Sie eine alternative Shell auf iTerm verwenden und eine separate bash_aliases-Datei laden und das System in Ruhe lassen
Ray Foss