我想用一个固定种子洗牌一个文件的行,这样我总是得到相同的随机顺序。我使用的命令如下:

sort -R file.txt | head -200 > file.sff

我能做些什么改变使它与固定的随机种子排序?

最佳答案

sort的GNU实现有一个--random-source参数。将此参数与具有已知内容的文件的名称一起传递将产生一组可靠的输出。
请参阅GNU coreutils手册中的Random sources文档,其中包含以下示例实现和示例:

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)

由于GNUsort也是coreutils的一部分,因此相关文档也适用于:
sort --random-source=<(get_seeded_random 42) -R file.txt | head -200 > file.sff

10-08 08:56
查看更多