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?

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.


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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.