OS Xにshufをインストールしますか?


49

Ubuntu Linuxにはshufと呼ばれる素晴らしいツールがあります。これはheadのように機能しますが、10行のランダムな行を提供します。Homebrewで見つけることができませんでした。OS Xにインストールする最も簡単な方法は何ですか?


2
これは、gnuテキストユーティリティパッケージの一部です。coreutilsの一部のようですが、homebrewでどのようにパッケージ化されているのかわかりません。
jl8e 14

回答:


78

coreutilsはでインストールできbrew install coreutilsます。

shufとしてリンクされgshufます。coreutilsをインストールする際の注意事項をお読みください。


2
注意点は、ツールの固有名を使用すべきではなく、g(「gshuf」など)の接頭辞を使用すべきではないということです。
不愉快な猫14

2
はい、または必要に応じてPATHを構成して、期待どおりの結果を得ることができます。
ジェイトンプソン14

3
brew install coreutilsgデフォルトでosxにプレフィックス付きのユーティリティをインストールするため、上記のコマンドを使用してインストールできます。
ブラッドパークズ

13

さらに別の解決策は、ベンダーが提供するツールについて学ぶことです。確かに、あなたはできるチェーンjotpastesortcutheadと同じ結果を得ます。

jot -r "$(wc -l FILE)" 1 |
paste - FILE |
sort -n |
cut -f 2- |
head -n 10
  • jotは、1行から各行のFILEの行数までの乱数を生成します
  • pasteは、FILEの各行に乱数を貼り付けます
  • sortは各行の数値をソートします
  • cutは、各行から乱数を削除します
  • headは最初の10行を出力します

2
私はこの答えの本質が本当に好きです。何らかの理由で追加のツールをインストールできない別のマシンで同じことをいつ行いたいかわからない
-forquare

私はjot前に聞いたことがない。知識を広げてくれてありがとう。
tommy.carstensen

9

Macportsでcoreutilsを次のようにインストールできます。

sudo port install coreutils

これにより、GNUコアユーティリティが/ opt / local / binに追加され、gが先頭に追加されます。

例えば gshuf


2
これをmacportsで使用しました、ありがとう。Homebrewがあまり好きではない
ゾルガトーネ

sudoの権利をお持ちの場合に最適な答えです。しません。
tommy.carstensen

@ tommy.carstensenその後、管理者に問い合わせてください-彼らはあなたが理由でこれを行うことを困難にしたでしょう
-user151019

3

別のオプションは、randomize-lines(homebrew)パッケージをインストールするrlことです。これには、shufと同様の機能を持つコマンドがあります。

Usage: rl [OPTION]... [FILE]...
Randomize the lines of a file (or stdin).

  -c, --count=N  select N lines from the file
  -r, --reselect lines may be selected multiple times
  -o, --output=FILE
                 send output to file
  -d, --delimiter=DELIM
                 specify line delimiter (one character)
  -0, --null     set line delimiter to null character
                 (useful with find -print0)
  -n, --line-number
                 print line number with output lines
  -q, --quiet, --silent
                 do not output any errors or warnings
  -h, --help     display this help and exit
  -V, --version  output version information and exit
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.