diff options
Diffstat (limited to 'bin/rndl.mi5')
-rw-r--r-- | bin/rndl.mi5 | 38 |
1 files changed, 0 insertions, 38 deletions
diff --git a/bin/rndl.mi5 b/bin/rndl.mi5 deleted file mode 100644 index f99ccbea..00000000 --- a/bin/rndl.mi5 +++ /dev/null @@ -1,38 +0,0 @@ -# Print a random line from input -self=rndl - -# If there are no arguments, we're checking stdin; this is more complicated -# than checking file arguments because we have to count the lines in order to -# correctly choose a random one, and two passes means we require a temporary -# file if we don't want to read all of the input into memory (!) -if [ "$#" -eq 0 ] ; then - -<% -include(`include/mktd.m4') -%> - - # We'll operate on stdin in the temp directory; write the script's stdin to - # it with cat(1) - set -- "$td"/stdin - cat >"$td"/stdin -fi - -# Count the number of lines in the input -lc=$(sed -- '$=;d' "$@") || exit - -# If there were none, bail -case $lc in - ''|0) - printf >&2 'rndl: No lines found on input\n' - exit 2 - ;; -esac - -# Try to get a random seed from rnds(1df) for rndi(1df) -seed=$(rnds) - -# Get a random line number from rndi(1df) -ri=$(rndi 1 "$lc" "$seed") || exit - -# Print the line using sed(1) -sed -- "$ri"'!d' "$@" |