Regex Linux命令-查找长度为3或8个字母的单词

Regex Linux命令-查找长度为3或8个字母的单词,regex,grep,Regex,Grep,我有一个包含很多单词的文本文件。我需要找到长度为3个字母或8个字母的单词。我可以用下面的命令分别找到3个字母和8个字母的单词。如何将结果合并到一个输出中 grep -E '^.{3}$' words | wc -w grep -E '^.{8}$' words | wc -w 另一种方式是: grep -E '^(.{3}|.{8})$' 并将其他方式结合起来: grep -E '^.{3}$|^.{8}$' grep -E -e '^.{3}$' -e '^.{8}$' 选中此项: 例

我有一个包含很多单词的文本文件。我需要找到长度为3个字母或8个字母的单词。我可以用下面的命令分别找到3个字母和8个字母的单词。如何将结果合并到一个输出中

grep -E '^.{3}$' words | wc -w

grep -E '^.{8}$' words | wc -w
另一种方式是:

grep -E '^(.{3}|.{8})$'
并将其他方式结合起来:

grep -E '^.{3}$|^.{8}$'
grep -E -e '^.{3}$' -e '^.{8}$'
选中此项:

例如:

$ cat file
orange
banana
who
what
we
eat
buzzkill
find

$ grep -E '^(.{3}|.{8})$' file
who
eat
buzzkill

$ grep -E '^.{3}$|^.{8}$' file
who
eat
buzzkill

$ grep -E -e '^.{3}$' -e '^.{8}$' file
who
eat
buzzkill

如果要计算三个字母和八个字母的单词,请使用:

grep -Ewc '.{3}|.{8}' file
grep -Ew '.{3}|.{8}' file
如果您想查看三个字母和八个字母的单词,请使用:

grep -Ewc '.{3}|.{8}' file
grep -Ew '.{3}|.{8}' file
因此,如果您的文件包含:

a
be
sea
deee
goldfish
somethinglong
您将获得:

grep -Ewc '.{3}|.{8}' file
2
或:


使用现有模式的替代方案<代码>图案1 |图案2谢谢马克。像这样吗?grep-E'^.{3}$'words | grep-E'^.{8}$'words | wc-w它只读取第一部分,不进行8个字母的计数。
grep-E'^.{3}$^.{8}$'words
@melpomene putbur注释作为答案您还可以组合多个
-E
参数:
grep-E-E'^.{3$'-E'.