danglingfarpointer's memoization

仕事周りでの気付き、メモ、愚痴などを書いていきます。

OS Xのbashでファイルをランダムにk個選択する

OS Xbashで、あるディレクトリ以下の全てのファイルから5ファイルをランダムに選択したい場合:

for f in $(find . -type f); do echo `uuidgen` $f; done | sort | head -5 | awk '{print $2}'

CentOSであればsort -Rでランダムにソートできるので、もう少しシンプルにできそうだが、OS Xのsortではできないようだ。

uuidgenの代わりに$RANDOMでもよいが、ファイル数が多い場合にランダム性が損なわれる。