Entspricht gnu `sort -R` unter OSX?


37

Das GNU- sortTextdienstprogramm bietet eine nicht standardmäßige -ROption zum Zufallsgenerieren von Eingabezeilen.

OSX sorthat diese Erweiterung nicht. Gibt es ähnliche Funktionen in einem anderen Textfilter?

Antworten:


50

Wenn Sie möchten, können Sie GNU sortüber das GNU- Paket coreutils über Homebrew installieren , das ein Paketmanager für OS X ist.

Wenn Sie dies ausführen, wird Homebrew installiert.

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Folgen Sie dann einfach den Installationsanweisungen. Wenn Homebrew installiert ist, führen Sie es aus

brew install coreutils

Dadurch wird GNU sort as installiert gsort, sodass Sie es wie sortauf jedem GNU Linux verwenden können.


Werfen Sie alternativ einen Blick auf diese Fragen zum Stapelüberlauf, in denen einige Methoden erwähnt werden:

Wie kann ich die Zeilen in einer Datei mit einem Standardwerkzeug unter Redhat Linux zufällig sortieren
? Wie kann ich die Zeilen einer Textdatei in der Unix-Befehlszeile mischen?

Oder werfen Sie einen Blick auf diese Seite von commandlinefu.com:

Zeilen zufällig sortieren (entgegengesetzt zu | sortieren)


Die Homebrew-Option funktioniert genauso wie die verknüpften awk- oder perl-Konstruktionen (obwohl ich mir vorstelle, dass sie langsamer sind).
12.09.11

7

Unter OS X, wenn Sie wollen, nicht installieren Homebrew (aber man sollte wirklich) könnten Sie perloder ruby:

perl -MList::Util -e 'print List::Util::shuffle <>'

oder

ruby -e 'puts STDIN.readlines.shuffle'

0

Verwenden Sie shufoder sortaus coreutilsPaket, aber dann müssen Sie /usr/local/binIhrer PATHin- ~/.bashrcDatei Folgendes hinzufügen :

export PATH=/usr/local/sbin:/usr/local/bin:$PATH

Alternativ können Sie versuchen ex:

ex -s +"%s/^/\=reltimestr(reltime())[-2:].' '" +"sort n" +"%s/^\S* //" +%p -cq! /dev/stdin

Quelle: Wie mische ich eine Liste in vim?


0

Sie können den rlBefehl über homebrew ( brew install randomize-lines) installieren .

Es ist recht schnell und bietet Optionen zum Begrenzen der Anzahl der zurückgegebenen Artikel sowie zum Festlegen des Trennzeichens (z. B. Leerzeichen anstelle von Zeilenvorschub).

(Siehe auch https://stackoverflow.com/a/42056195/43615 .)

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.