![OSX 上の gnu `sort -R` と同等ですか?](https://rvso.com/image/1289074/OSX%20%E4%B8%8A%E3%81%AE%20gnu%20%60sort%20-R%60%20%E3%81%A8%E5%90%8C%E7%AD%89%E3%81%A7%E3%81%99%E3%81%8B%3F.png)
GNUテキスト ユーティリティには、入力行をランダム化するsort
非標準オプションが備わっています。-R
OSXsort
にはこの拡張機能がありません。別のテキスト フィルターで同様の機能を使用できますか?
答え1
ご希望の場合は、sort
GNUのコアユーティリティパッケージ終了自家製これは OS X 用のパッケージ マネージャーです。
これを実行すると Homebrew がインストールされます。
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
その後はインストール手順に従ってください。Homebrewがインストールされたら、
brew install coreutils
これにより、GNU sort が としてインストールされ、他の GNU Linux とgsort
同様に使用できるようになります。sort
あるいは、いくつかの方法について言及している次の Stack Overflow の質問を参照してください。
Redhat Linuxの標準ツールを使用してファイル内の行をランダム化するにはどうすればよいですか
Unix コマンドラインでテキスト ファイルの行をシャッフルするにはどうすればよいですか?
または、commandlinefu.com の次のページをご覧ください。
答え2
OS X では、homebrew をインストールしたくない場合は (ただし、インストールする必要があります)、perl
または を使用できますruby
。
perl -MList::Util -e 'print List::Util::shuffle <>'
または
ruby -e 'puts STDIN.readlines.shuffle'
答え3
パッケージからshuf
またはを使用しますが、その後、次のようにinファイルに追加する必要があります。sort
coreutils
/usr/local/bin
PATH
~/.bashrc
export PATH=/usr/local/sbin:/usr/local/bin:$PATH
あるいは、以下を試すこともできますex
:
ex -s +"%s/^/\=reltimestr(reltime())[-2:].' '" +"sort n" +"%s/^\S* //" +%p -cq! /dev/stdin
答え4
rl
homebrew ( ) 経由でコマンドをインストールできますbrew install randomize-lines
。
これは非常に高速で、返される項目の数を制限するオプションや、区切り文字 (たとえば、改行の代わりにスペース) を指定するオプションがあります。