Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I need to create a text file which should contain random text data that can be read by human. I know that we can use /dev/urandom and /dev/random for getting random data. But it is not readable by humans. I need to create a file which contains random text format. Is there any way to do that?

share|improve this question
    
"Readable by humans" as in making actual sense? Full sentences? Or just some dictionary words? – slhck Dec 23 '13 at 12:13
up vote 24 down vote accepted

We can do it by following command

base64 /dev/urandom | head -c 10000000 > file.txt

It creates a file with name file.txt size of 10 MB.

share|improve this answer
    
Thanks! This works perfectly on OSX – hanxue Jul 11 '14 at 4:20

get the output of:

tr -dc A-Za-z0-9 </dev/urandom 

and pipe it to a file.

You can use head command with -c or -n to limit the file size

example to generate a 1kB file a.txt:

tr -dc A-Za-z0-9 </dev/urandom | head -c 1024 > a.txt
share|improve this answer

base64 seems to only output alphanumeric characters plus / and +.

I like this to get more "punctuation" characters, like

'[:punct:]'
  Punctuation characters; in the 'C' locale and ASCII character
  encoding, this is ! " # $ % & ' ( ) * + , - . / : ; < = > ? @ [ \
  ] ^ _ ` { | } ~

So use this:

'[:graph:]'
     Graphical characters: '[:alnum:]' and '[:punct:]'

and use tr to remove single quotes ' backticks ` and backslashes \

tr -dc '[:graph:]' < /dev/urandom | tr -d \''\\'\` | head -c [size]

the -c size option to head can have a multiplier suffix: b 512, kB 1000, K 1024, MB 1000*1000, M 1024*1024, GB 1000*1000*1000, G 1024*1024*1024, and so on for T, P, E, Z, Y.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.