首页 > 解决方案 > Linux 命令 - 查找长度为 3 或 8 个字母的单词

问题描述

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

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

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

标签: regexgrep

解决方案


另一种方法是:

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

推荐阅读