I want to shuffle the lines of a file with a fixed seed so that I always get the same random order. The command I am using is as follows:
sort -R file.txt |
The GNU implementation of sort has a --random-source argument. Passing this argument with the name of a file with known contents will result in a reliable set of output.
See the Random sources documentation in the GNU coreutils manual, which contains the following sample implementation and example:
get_seeded_random() { seed="$1" openssl enc -aes-256-ctr -pass pass:"$seed" -nosalt \ /dev/null } shuf -i1-100 --random-source=<(get_seeded_random 42)
Since GNU sort is also part of coreutils, the relevant documentation applies there as well:
sort --random-source=<(get_seeded_random 42) -R file.txt | head -200 > file.sff