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 | head -200 > file.sff
What change could I make it so that it sorts with a fixed random seed?
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/zero 2>/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
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With