我想用固定的种子对文件的行进行随机排列,以便我总是得到相同的随机顺序.我使用的命令如下:
sort -R file.txt | head -200 > file.sff
Run Code Online (Sandbox Code Playgroud)
我可以做出什么改变,以便用固定的随机种子进行分类?
Cha*_*ffy 11
GNU实现sort
有一个--random-source
参数.将此参数与具有已知内容的文件的名称一起传递将产生可靠的输出集.
请参阅GNU coreutils手册中的随机源文档,其中包含以下示例实现和示例:
Run Code Online (Sandbox Code Playgroud)get_seeded_random() { seed="$1" openssl enc -aes-256-ctr -pass pass:"$seed" -nosalt \ </dev/zero 2>/dev/null } shuf -i1-100 --random-source=<(get_seeded_random 42)
由于GNU sort
也是coreutils的一部分,因此相关文档也适用于此:
sort --random-source=<(get_seeded_random 42) -R file.txt | head -200 > file.sff
Run Code Online (Sandbox Code Playgroud)
bar*_*abi 10
Linux 的shuf
命令可以使用参数将文件作为固定的随机源--random-source
:
shuf --random-source=some_file.txt file.txt | head -n200 > file.sff
Run Code Online (Sandbox Code Playgroud)
如果您不想提供完整的文件,您可以随时通过管道传输一个文件:
shuf --random-source=<(yes 42) file.txt | head -n200 > file.sff
Run Code Online (Sandbox Code Playgroud)