GNU/Linux >> Linux の 問題 >  >> Linux

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

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

ランダムの場合、すべての行が同じ確率で選択され、選択された行はどれも繰り返されないことを意味します。

head およびtail ファイルのサブセットを選択できますが、ランダムには選択できません。私はいつでもそうするためのPythonスクリプトを書くことができることを知っていますが、この使用法のためのコマンドがあるのだろうかと思っています。

承認された回答:

shuf コマンド(coreutilsの一部)はこれを行うことができます:

shuf -n 1000 file

そして、少なくとも今のところ(2013年からのコミットで追加された)非古代バージョンでは、適切な場合にリザーバーサンプリングを使用します。つまり、メモリが不足することはなく、高速アルゴリズムを使用しています。


Linux
  1. Linuxでコマンド出力をファイルに保存する方法

  2. ファイルを強制的に削除するにはどうすればよいですか?

  3. 端末でテキスト ファイルを編集する方法

  1. LinuxでTarコマンドを使用する方法

  2. 出力をファイルに追加する方法は?

  3. ファイルの部分チェックサムを生成する方法

  1. Linuxファイルコマンド:Linuxでファイルタイプを決定する方法

  2. Linuxでファイルまたはディレクトリを削除(削除)する方法

  3. Linuxでmd5sumコマンドを使用する方法