Sponsored Content
Top Forums Shell Programming and Scripting how to generate a random list from a given list Post 302075015 by Perderabo on Monday 29th of May 2006 11:14:13 AM
Old 05-29-2006
ksh has a built-in random number generator. It's performance is not spectacular, but it is probably good enough for your purposes. It will generate random numbers in the range of 0 to 32767. You will need a different range. Use this technique:
Code:
#! /usr/bin/ksh

#
# RANDOM is a random number between 0 and 32767 (inclusive)
max_random=32768

#
# We want a random number between 0 and 14 (inclusive)
max_needed=15

i=0
while ((i<7)) ; do
        ((r=RANDOM*max_needed/max_random))
        echo $r
        ((i=i+1))
done

exit 0

Warning: do not use the modulus operation to convert the range. The above code is using the high order bits of the initial random number while the modulus operation would use the low order bits. So you would generate a random number between 0 and 14999. Then you would add one to get a line number between 1 and 15000. Then just use sed or something to retrieve that line. (Or something like that. I got lost in your math...I don't understand how picking 50 cities gives us 1000 picks. Smilie )

But this assumes that it is ok to pick the lsame line twice from the file every now and then. Many times that is exactly what you want. But a few times, duplicates are not ok. Suppose that there were 52 lines in the file representing the cards in a deck of playing cards. If you want to generate a random poker hand, you must eliminate duplicates. In this case, you would first generate a number between 1 and 52 and, as before, you would retrieve the selected line. But then you would use sed to delete that line leaving only 51 lines in the file. For your second card, you generate a random number between 1 and 51. And so on.
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

how to generate a list of files

Hello people I need to find a way to generate a file that contains the names of all *.jpg files that were generated after a specific date The search should start in my current folder and recursively search inner folders It would be best to list the file names one below the other in the output... (3 Replies)
Discussion started by: jasongr
3 Replies

2. UNIX for Advanced & Expert Users

How to generate a 'kill' list

Hi, I want to write a script which can generate a kill list for killing process, program name start with f60.., which have been running for more than 8 hours, the list output should looks like: kill -9 4444176 kill -9 4674520 kill -9 4454180 kill -9 4994523 Can anyone help how to write... (10 Replies)
Discussion started by: victorcheung
10 Replies

3. Shell Programming and Scripting

Script to generate a list of number

How can I generate a list of numbers and place all of these numbers in a line-by-line into a file. I am new to scripting actually. 0501000000 to 0509999999 i.e. 0501000000 0501000001 ...... 0509999999 set 02 0551000000 to 0559999999 i.e. 0551000000 0551000001 ...... 0559999999 ... (3 Replies)
Discussion started by: noo
3 Replies

4. Shell Programming and Scripting

How to generate the list?

Reference post, https://www.unix.com/shell-programming-scripting/131307-incrementing-twist-please-help.html , I can generate a word list easily, by echo or for loop. For example, with the echo command and word expect, I can list all 6 letters possibility (6X6X6X6X6X6=46656) echo... (6 Replies)
Discussion started by: rdcwayx
6 Replies

5. Shell Programming and Scripting

Generate a change list of files/dir

Is there a tool that can diff a directory and generate a change list of files in that directory based on a previous snapshot on the directory? For example /etc/a.txt:changed /etc/b.txt:removed /etc/c.txt:added Thanks! (1 Reply)
Discussion started by: overmindxp
1 Replies

6. Solaris

list any random first 5 files with 'ls'

I just need to see any number of random files to see the owner, group and permissions information since all the files in the directory have the same permissions and ownership information. Is it possible just to list any 5 files without going thru the series of commands such as "ls -ltu | head -5"... (8 Replies)
Discussion started by: yoonkim
8 Replies

7. UNIX for Dummies Questions & Answers

Generate list of deleted files

I copied all JPEGs from my laptop to an external drive using find . -name "*.jpg" -exec cp '{}' ./media/Backup/pictures \; And then deleted all of them from my laptop. Now, I realize that I need the folder path of all the original JPEGs as the path has the important information. I dont... (1 Reply)
Discussion started by: eshwaconsulting
1 Replies

8. Shell Programming and Scripting

Generate list of directories that a user has access to

I manage an AIX OS 7.1 system on IBM Power 770. I want to find out which directories/folders a particular user has read/write access to. How can I cleanly create a list of all directories on the system that a user has access to.. Does this make sense? Thanks in Advance, NEWB:rolleyes: (3 Replies)
Discussion started by: code911
3 Replies

9. Shell Programming and Scripting

Need to generate a file with random data. /dev/[u]random doesn't exist.

Need to use dd to generate a large file from a sample file of random data. This is because I don't have /dev/urandom. I create a named pipe then: dd if=mynamed.fifo do=myfile.fifo bs=1024 count=1024 but when I cat a file to the fifo that's 1024 random bytes: cat randomfile.txt >... (7 Replies)
Discussion started by: Devyn
7 Replies

10. Shell Programming and Scripting

Generate list of letters

Heyas I want to list passed arguments and make an incrementing 'marker'. That 'marker' should be a letter between a-z, in proper order. I'm not aware of a seq pendant, so i tried it with this: C=141 list="" while ];do printf \\$C list+=" \\$C" C=$((C+1)) done echo... (3 Replies)
Discussion started by: sea
3 Replies
bup-random(1)						      General Commands Manual						     bup-random(1)

NAME
bup-random - generate a stream of random output SYNOPSIS
bup random [-S seed] [-fv] DESCRIPTION
bup random produces a stream of pseudorandom output bytes to stdout. Note: the bytes are not generated using a cryptographic algorithm and should never be used for security. Note that the stream of random bytes will be identical every time bup random is run, unless you provide a different seed value. This is intentional: the purpose of this program is to be able to run repeatable tests on large amounts of data, so we want identical data every time. bup random generates about 240 megabytes per second on a modern test system (Intel Core2), which is faster than you could achieve by read- ing data from most disks. Thus, it can be helpful when running microbenchmarks. OPTIONS
the number of bytes of data to generate. Can be used with the suffices k, M, or G to indicate kilobytes, megabytes, or gigabytes, respectively. -S, --seed=seed use the given value to seed the pseudorandom number generator. The generated output stream will be identical for every stream seeded with the same value. The default seed is 1. A seed value of 0 is equivalent to 1. -f, --force generate output even if stdout is a tty. (Generating random data to a tty is generally considered ill-advised, but you can do if you really want.) -v, --verbose print a progress message showing the number of bytes that has been output so far. EXAMPLES
$ bup random 1k | sha1sum 2108c55d0a2687c8dacf9192677c58437a55db71 - $ bup random -S1 1k | sha1sum 2108c55d0a2687c8dacf9192677c58437a55db71 - $ bup random -S2 1k | sha1sum f71acb90e135d98dad7efc136e8d2cc30573e71a - $ time bup random 1G >/dev/null Random: 1024 Mbytes, done. real 0m4.261s user 0m4.048s sys 0m0.172s $ bup random 1G | bup split -t --bench Random: 1024 Mbytes, done. bup: 1048576.00kbytes in 18.59 secs = 56417.78 kbytes/sec 1092599b9c7b2909652ef1e6edac0796bfbfc573 BUP
Part of the bup(1) suite. AUTHORS
Avery Pennarun <apenwarr@gmail.com>. Bup unknown- bup-random(1)
All times are GMT -4. The time now is 05:38 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy