1

how do I randomize the order of words in a .txt file? I don't know any bash and don't know any good resources thanks to all

poutyboi
  • 149
  • 5
  • 20
  • 1
    possible duplicate of [How can I randomize the lines in a file using a standard tools on Redhat Linux](http://stackoverflow.com/questions/886237/how-can-i-randomize-the-lines-in-a-file-using-a-standard-tools-on-redhat-linux) – tripleee Mar 20 '14 at 18:42

2 Answers2

3

If there's one word per line, you can use shuf yourfile to output them in random order, or

shuf yourfile > tmpfile && mv tmpfile yourfile

to write the shuffled contents back into yourfile.

that other guy
  • 116,971
  • 11
  • 170
  • 194
  • You can use `tr ' ' '\n' < yourfile | shuf | tr '\n' ' '` to shuffle words in a file and put all the shuffled words on one line. – that other guy Feb 11 '13 at 06:33
1

If there is more than one word per line, you can use this Perl one-liner:

 perl -MList::Util -e '$/=""; print join " ", List::Util::shuffle split /\s/, <>' <in.txt >out.txt

If you don't like that output file will be in single line, you can change it be one word per line: simply replace join " " with join "\n".

mvp
  • 111,019
  • 13
  • 122
  • 148