![Äquivalent zu gnu „sort -R“ unter OSX?](https://rvso.com/image/1289074/%C3%84quivalent%20zu%20gnu%20%E2%80%9Esort%20-R%E2%80%9C%20unter%20OSX%3F.png)
Das GNU- sort
Textdienstprogramm verfügt über eine nicht standardmäßige -R
Option zum Zufallsprinzip der Eingabezeilen.
OSX sort
hat diese Erweiterung nicht. Gibt es eine ähnliche Funktion in einem anderen Textfilter?
Antwort1
Wenn Sie möchten, können Sie GNU sort
über GNUs installieren.Kernel-DienstprogrammePaket überSelbstgebrautes, ein Paketmanager für OS X.
Durch die Ausführung 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 aus
brew install coreutils
Dadurch wird GNU sort als installiert , sodass Sie es wie auf jedem GNU Linux gsort
verwenden können .sort
Alternativ können Sie sich diese Stack Overflow-Fragen ansehen, in denen einige Methoden erwähnt werden:
Wie kann ich mit Standardtools unter Redhat Linux die Zeilen in einer Datei zufällig anordnen?
Wie kann ich die Zeilen einer Textdatei in der Unix-Befehlszeile umordnen?
Oder schauen Sie sich diese Seite von commandlinefu.com an:
Antwort2
Wenn Sie unter OS X Homebrew nicht installieren möchten (was Sie aber wirklich sollten), können Sie perl
Folgendes verwenden ruby
:
perl -MList::Util -e 'print List::Util::shuffle <>'
oder
ruby -e 'puts STDIN.readlines.shuffle'
Antwort3
Verwenden Sie shuf
oder sort
aus coreutils
dem Paket, aber dann müssen Sie beispielsweise Folgendes /usr/local/bin
zu Ihrer PATH
In- Datei hinzufügen:~/.bashrc
export PATH=/usr/local/sbin:/usr/local/bin:$PATH
Alternativ können Sie Folgendes versuchen ex
:
ex -s +"%s/^/\=reltimestr(reltime())[-2:].' '" +"sort n" +"%s/^\S* //" +%p -cq! /dev/stdin
Antwort4
Sie könnten den rl
Befehl über homebrew ( brew install randomize-lines
) installieren.
Es ist recht schnell und bietet Optionen zum Begrenzen der Anzahl zurückgegebener Elemente sowie zum Festlegen des Trennzeichens (z. B. Leerzeichen statt Zeilenvorschub).
(Siehe auchhttps://stackoverflow.com/a/42056195/43615.)