Generating a Random String of 'n' length


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Generating a Random String of 'n' length
# 1  
Old 11-03-2015
Generating a Random String of 'n' length

Hi,

How can I generate a string of random characters (alpha+numeric) of a particular length ?

For e.g. for
n=5, output = 'kasjf'
n=10, output = 'hedbcd902k'

Also, please let me know if random (valid) dates could also be generated.

Thanks
# 2  
Old 11-03-2015
This is a linux example for reasonably random dates using /dev/random:
(/dev/urandom gives better random numbers but is overkill for learning)

Code:
date -d `echo @ $(od --read-bytes=4 --address-radix=n --format=u4 /dev/random)| awk '{print $1$2}'`

You need to specify a little more background - what UNIX, what shell? In general it is possible especially using perl and awk
# 3  
Old 11-04-2015
... and for a string with a given length:

Code:
# length 5
head -3 /dev/urandom | tr -cd '[:alnum:]' | cut -c -5

# length 8
head -3 /dev/urandom | tr -cd '[:alnum:]' | cut -c -8


Last edited by ripat; 11-04-2015 at 04:09 AM.. Reason: Typo
# 4  
Old 11-04-2015
@Jim, /dev/random gives the better random numbers but is slower than /dev/urandom!
# 5  
Old 11-04-2015
Code:
n=6; output=$(tr -cd '[:alnum:]' < /dev/urandom | head -c$n)

$ echo $output
ySezMk

# 6  
Old 11-04-2015
With perl
Code:
cat randstring.pl

Code:
#!/usr/bin/perl
$n=shift;
@alpha=( ("A".."Z"), ("a".."z") );
@numeric=( (0..9) );
@allchars=( @alpha, @numeric );
$allrange=$#allchars+1;
for ($i=1; $i <=  $n; $i++) {
  $out.=$allchars[int(rand($allrange))];
}
print "$out\n";

Code:
./randstring.pl 10

# 7  
Old 11-04-2015
Asuming a length of 10

Code:
perl -le 'print map { (a..z,A..Z,0..9)[rand 62] } 0..9'

or:
Code:
n=10
perl -le 'print map { (a..z,A..Z,0..9)[rand 62] } 1..pop' $n


Last edited by Aia; 11-04-2015 at 03:43 PM..
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Generating a POSIX random number?

Hi Guys and gals... As you know I am getting to grips with POSIX and hit this stumbling block. Generating two random numbers 0 to 255 POSIXly. Speed in not important hence the 'sleep 1' command. I have done a demo that works, but it sure is ugly! Is there a better way? #!/bin/sh # Random... (12 Replies)
Discussion started by: wisecracker
12 Replies

2. Shell Programming and Scripting

Random number generating script?

Having a hard time with this. Very new to scripting and linux. Spent all sunday trying to do this. Appreciate some help and maybe help breaking down what the syntax does. Create a Bash program. It should have the following properties • Creates a secret number between 1 and 100 i. The... (3 Replies)
Discussion started by: LINUXnoob15
3 Replies

3. Shell Programming and Scripting

Generating Random Number in certain range

Hi there I am trying to generate a random number between 40 and 70 using the shell here is my code so far and it keeps going above 70. all help much appreciated! comp=$(( RANDOM%70+40 )) echo $comp (4 Replies)
Discussion started by: faintingquiche
4 Replies

4. UNIX for Dummies Questions & Answers

Generating 512MB file with dd using random data

Hello. Could anyone help me with my little annoying problem? I have to generate a 512 MB file made up with random data using DD. After some internet digging I found out that the command is: dd if=/dev/urandom of=/exemple/file bs=512MB After running this command the... (2 Replies)
Discussion started by: razolo13
2 Replies

5. Shell Programming and Scripting

Remove 3rd character from the end of a random-length string

Hi, I hope someone can share there scripting fu on my problem, I would like to delete the 3rd character from a random length of string starting from the end Example Output Hope you can help me.. Thanks in advance.. (3 Replies)
Discussion started by: jao_madn
3 Replies

6. Shell Programming and Scripting

Generating Gaussian Distributed Random Numbers

I want to generate an awk function that generated a Gaussian distributed set of random numbers. I need to implement the thing below in awk. Rnd is just a uniform random number between 0 and 1 function rgaussian(r1, r2) { Do v1 = 2 * Rnd - 1 v2 = 2 * Rnd - 1 ... (0 Replies)
Discussion started by: kristinu
0 Replies

7. Programming

C Help; generating a random number.

Im new to C, and Im having a hard time getting a random number. In bash, I would do something similar to the following to get a random number; #!/bin/bash seed1=$RANDOM seed2=$RANDOM seed3=$RANDOM SEED=`expr $seed1 * $seed2 / $seed3` echo ${SEED%.*} Now, in online examples... (4 Replies)
Discussion started by: trey85stang
4 Replies

8. Programming

generating 16 digit random number in C

Hi, How can we generate 16 digit random nos in C. (10 Replies)
Discussion started by: ajaysahoo
10 Replies

9. Shell Programming and Scripting

Generating random numbers

Hi, I am having trouble with generating random numbers. can this be done with awk? So I have a file that looks like this: 23 30 24 40 26 34 So column1 is start and column2 is end. I want to generate 3 random #'s between start and stop: So the output will look like this: ... (9 Replies)
Discussion started by: phil_heath
9 Replies

10. Shell Programming and Scripting

Generating random number within a specific range (0.5-1.5)

Hello, need a way to generate numbers within 0.5-1.5 range Has to be totally random: 0.6 1.1 0.8 1.5 0.6 and so on.... How to? (10 Replies)
Discussion started by: TehOne
10 Replies
Login or Register to Ask a Question