regex - Linux 命令 - 查找长度为 3 或 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
推荐阅读
- typescript - 打字稿:如何创建类型的副本但更改属性类型
- angular - AngularComponent与@inject如何测试
- python - 将带有空格分隔的列表压缩成元组
- shell - Erlang shell输出信息中的$是什么意思
- html - 在我的网络应用程序中,MacOS 搞乱了我的格式,而 Windows 处理得很好
- c# - 从 Windows 应用程序中的表中提取数据
- python - python re正则表达式冻结对随机文本的处理
- visual-studio-code - 如何设置 CodeLLDB 以调试从 Java 进程调用的 Rust 可执行文件?
- excel - 下载保存在烧瓶服务器上的 excel 文件
- tsql - T-SQL 使用 Lead () 函数,但不允许在 GROUP BY 或 UPDATE 中使用