Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
rl(1)				 User Commands				 rl(1)

       rl - Randomize Lines.

       rl [OPTION]...  [FILE]...

       rl  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.

       -c, --count=N
	      Select  the  number  of  lines to	be returned in the output.  If
	      this argument is omited all  the	lines  in  the	file  will  be
	      returned in random order.	 If the	input contains less lines than
	      specified	and the	--reselect option below	 is  not  specified  a
	      warning is printed and all lines are returned in random order.

       -r, --reselect
	      When  using  this	 option	a single line may be selected multiple
	      times.  The default behaviour is that any	input line  will  only
	      be  selected  once.   This option	makes it possible to specify a
	      --count option with more lines than the file actually holds.

       -o, --output=FILE
	      Send randomized lines to FILE instead of stdout.

       -d, --delimiter=DELIM
	      Use specified character as a "line"  delimiter  instead  of  the
	      newline character.

       -0, --null
	      Input  lines are terminated by a null character.	This option is
	      useful to	process	the output of the GNU find -print0 option.

       -q, --quiet, --silent
	      Be quiet about any errors	or warnings.

       -h, --help
	      Show short summary of options.

       -v, --version
	      Show version of program.

       Some simple demonstrations of how rl can	help you  do  everyday	tasks.
       Warning:	 some  of  these  examples  may	 affect	 the operation of your

       Play a random sound after 4 minutes (perfect for	toast):
	   sleep 240 ; play `find /sounds -name	'*.au' -print |	rl --count=1`

       Renice all the processes	of a random logged-in user:
	   renice +5 -u	`who | cut '-d ' -f 1 |	sort -u	| rl --count=1`

       Kill a random process on	your computer.
	   kill	-9 `ps -A | awk	'{print	$1}' | rl --count=1`
       Do this as root and see how long	your system keeps  working.   Increase
       the  --count  for extra effect.	(you may need to change	the ps and awk
       parameters depending on your system)

       Find all	movies and play	them in	random order.
	   find	. -name	'*.avi'	-print0	| rl -0	| xargs	-n 1 -0	mplayer
       Because -0 is used filenames  with  spaces  (even  newlines  and	 other
       unusual characters) in them work.

       The  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  wil  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.

       Copyright  (C)  2001,  2002,  2003,   2004,   2005   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

Version	0.2.4			   Apr 2005				 rl(1)


Want to link to this manual page? Use this URL:

home | help