Picking a random word with an specific number of letters in bash

331 views Asked by At

I need to pick a random word with n letters, n will be the parameter.

I have this:

#!bin/bash
shuf -n1 /usr/share/dict/words

So I know how to pick a random word but not with a specific number of letters.

1

There are 1 answers

2
Gilles Quénot On BEST ANSWER

Try this for words with 3 characters :

grep '^.\{3\}$' /usr/share/dict/words | shuf -n1

If you need a variable :

num=3
grep "^.\{$num\}\$"  

Explanations of the :

  • ^ : start anchor of line
  • . : any character
  • \{3\} : quantifier of the last character
  • $ : end of line anchor