diff options
Diffstat (limited to 'files/common')
-rwxr-xr-x | files/common/sbin/shuf | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/files/common/sbin/shuf b/files/common/sbin/shuf new file mode 100755 index 0000000..8d82d4d --- /dev/null +++ b/files/common/sbin/shuf @@ -0,0 +1,16 @@ +#!/usr/bin/awk -f +BEGIN{ + srand() # seed by time + srand(seed+srand()) # allow additional external seed +} +{ lines[++d]=$0 } +END{ + while (d > 0) { + if (e==d) {break} + r = int(1 + rand() * d) + print lines[r] + lines[r] = lines[d] + delete lines[d] + --d + } +} |