Alex Rivera | Logout

How can I randomize the lines in a file using standard tools on Red Hat Linux?

Asked 2009-05-20T05:12:01.237
116

How can I randomize the lines in a file using standard tools on Red Hat Linux?

I don't have the shuf command, so I am looking for something like a perl or awk one-liner that accomplishes the same task.

Edit
Report

1 Answer

11

A one-liner for python:

python -c "import random, sys; lines = open(sys.argv[1]).readlines(); random.shuffle(lines); print ''.join(lines)," myFile

And for printing just a single random line:

python -c "import random, sys; print random.choice(open(sys.argv[1]).readlines())," myFile

But see this post for the drawbacks of python's random.shuffle(). It won't work well with many (more than 2080) elements.

answered 2013-07-11T07:29:22.973

Your Answer