使用 bash 的 `$RANDOM` 进行可预测的随机输入行改组不起作用

使用 bash 的 `$RANDOM` 进行可预测的随机输入行改组不起作用

我有大约 100 行的输入。我想“随机”地打乱它们,但我想控制它。即,我想为随机数生成器播种,以始终产生相同的顺序。

我以为我可以使用bash(1)'s $RANDOM变量,但这总是产生不同的输出。哪里出了问题?

RANDOM=1 cat myfile | while read LINE ; do echo "$RANDOM $LINE" ; done | sort

答案1

该管道由 3 个不同的过程组成,因此您需要RANDOM在适当的过程中进行播种:

cat myfile | 
(RANDOM=1; while read LINE ; do echo "$RANDOM $LINE" ; done ) |
sort

相关内容