在bash中选择具有特定字母数的随机单词

在bash中选择具有特定字母数的随机单词,bash,random,word,letters,grep,regex,Bash,Random,Word,Letters,Grep,Regex,我需要选择一个带有n字母的随机单词,n将是参数 我有这个: #!bin/bash shuf -n1 /usr/share/dict/words 因此,我知道如何选择一个随机单词,但不知道如何选择特定数量的字母。对于包含3个字符的单词,请尝试以下方法: grep '^.\{3\}$' /usr/share/dict/words | shuf -n1 如果您需要一个变量: 对报告的解释: ^:起锚线 :任何字符 \{3\}:最后一个字符的量词 $:线端锚点 很有效,非常感谢,如果不太麻烦的话,

我需要选择一个带有
n
字母的随机单词,
n
将是参数

我有这个:

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

因此,我知道如何选择一个随机单词,但不知道如何选择特定数量的字母。

对于包含3个字符的单词,请尝试以下方法:

grep '^.\{3\}$' /usr/share/dict/words | shuf -n1
如果您需要一个变量: 对报告的解释:
  • ^
    :起锚线
  • :任何字符
  • \{3\}
    :最后一个字符的量词
  • $
    :线端锚点

很有效,非常感谢,如果不太麻烦的话,你能解释一下“^.{3}$”是什么意思吗。非常感谢你,你太棒了!如果您刷新页面,我已经为您分解了该命令(如果您没有)。这是一个正则表达式,用于匹配3个字符的单词它必须是有效单词吗?否则你可能会删掉太长的单词。为什么不继续挑选,直到尺寸合适?是的,它必须是一个有效的词
num=3
grep "^.\{$num\}\$"