|
NAMErl - Randomize Lines.SYNOPSISrl [OPTION]... [FILE]...DESCRIPTIONrl reads lines from a input file or stdin, randomizes the lines and outputs a specified number of lines. It does this with only a single pass over the input while trying to use as little memory as possible.
EXAMPLESSome simple demonstrations of how rl can help you do everyday tasks.Play a random sound after 4 minutes (perfect for toast): sleep 240 ; play `find /sounds -name ´*.au´ -print | rl --count=1` Play the 15 most recent .mp3 files in random order. ls -c *.mp3 | head -n 15 | rl | xargs --delimiter=´\n´ play Roll a dice: seq 6 | rl --count 2 Roll a dice 1000 times and see which number comes up more often: seq 6 | rl --reselect --count 1000 | sort | uniq -c | sort -n Shuffle the words of a sentence: echo -n "The rain in Spain stays mainly in the plain." \ | rl --delimiter=´ ´;echo Find all movies and play them in random order.
find . -name ´*.avi´ -print0 | rl -0 | xargs -n 1 -0
mplayer
BUGSThe program currently does not have very smart memory management. If you feed it huge files and expect it to fully randomize all lines it will completely read the file in memory. If you specify the --count option it will only use the memory required for storing the specified number of lines. Improvements on this area are on the TODO list.The program uses the rand() system random function. This function returns a number between 0 and RAND_MAX, which may not be very large on some systems. This will result in non-random results for files containing more lines than RAND_MAX. Note that if you specify multiple input files they are randomized per file. This is a different result from when you cat all the files and pipe the result into rl. COPYRIGHTCopyright © 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 Arthur de Jong.This is free software; see the license for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Visit the GSP FreeBSD Man Page Interface. |