你如何使用grep查找n个字符长的术语?

Bri*_*lis 7 regex grep

我正在使用grep来过滤Mac OS X词典单词文件(默认情况下位于/ usr/share/dict/words).

我想用grep来检索四个字符长的所有单词.我该怎么做呢?

我对如何做到这一点的最好猜测是:

grep [:alpha:]{4} words
Run Code Online (Sandbox Code Playgroud)

但这会导致零结果.

Mat*_*hen 14

它应该是:

grep -E '^[[:alpha:]]{4}$' words
Run Code Online (Sandbox Code Playgroud)

我们锚定它(因为5个字母的字符串也包含4个字母的字符串),并且POSIX字符类必须包含在括号表达式([])中.另外,我们引用shell.它需要扩展,所以-E.

  • +1.好东西.同样没有-E:`grep'^ [[:alpha:]]\{4 \} $'words` (2认同)
  • @Brain,是的,它更简洁,但它做了不同的事情.`[:alpha:]`匹配字母,`.`匹配除NUL之外的任何字符. (2认同)

Aak*_*shM 11

试着记住正则表达式语言grep支持的程度

grep '^....$' words
Run Code Online (Sandbox Code Playgroud)

为你工作?请注意,由于您正在搜索字典文件,因此我不确定您是否需要将自己限制为字母.