ファイルのサブセットをランダムにサンプリングする方法

ファイルのサブセットをランダムにサンプリングする方法

ファイルのサブセットをサンプリングするために使用できるLinuxコマンドはありますか?たとえば、ファイルには百万行が含まれており、ファイル内の千行だけをランダムにサンプリングしたいとします。

ランダムとは、すべての行が選択される確率が同じで、選択された行のいずれも重複しないことを意味します。

headtailファイルのサブセットを選択できますが、ランダムに選択することはできません。私はこれを行うためにいつでもPythonスクリプトを書くことができることを知っていますが、それに対するコマンドがあるかどうか疑問に思います。

ベストアンサー1

コマンドshuf(coreutilsの一部)で次のことができます。

shuf -n 1000 file

少なくとも今は非古代バージョン(追加)2013年からの約束)、これは適切な場合はリポジトリサンプリングを使用します。つまり、メモリが不足してはならず、高速アルゴリズムを使用していることを意味します。

おすすめ記事