Bash

使用 bash 的“$RANDOM”對輸入行進行可預測的隨機改組不起作用

  • June 23, 2020

我有大約 100 行的輸入。我想“隨機”洗牌,但我想控制它。即我想播種隨機數生成器以始終產生相同的排序。

我以為我可以使用bash(1)'s $RANDOM變數,但這總是會產生不同的輸出。怎麼了?

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

管道由 3 個不同的程序組成,因此您需要RANDOM在適當的程序中播種:

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

引用自:https://serverfault.com/questions/1022596