grep - 如何一次grep两种模式

标签 grep

很多时候我必须在命令行中使用管道连接到 grep 并希望匹配两个不同的表达式。 (一个 OR 匹配 A OR B。)

例如,我想为 foo[0-9]+ 或 bar[0-9]+ grep generate_out 的输出。我当然可以只执行两次:

generate_out| grep "foo[0-9]+"   
generate_out| grep "bar[0-9]+"   

但 generate_out 通常很昂贵,我不想运行它两次(或存储它的输出)。相反,我只想使用一个表达式:

generate_out| grep "foo[0-9]+ OR bar[0-9]+"   

当然这行不通,但我想要等效的表达式。

最佳答案

使用 grep 的 -e 选项指定“或”的多个模式:

$ seq 15 | grep -e 5 -e 3
3
5
13
15

关于grep - 如何一次grep两种模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30683999/

相关文章:

linux - 计算文件中 2 个字符串之间匹配的行数

bash - bash if 语句中的错误 : Conditional binary operator expected

bash - 在 bash 中搜索 .netrc 文件,并返回给定机器的用户名

linux - 如何使用 sed 打印匹配组

bash - 使用 AWK/Grep/Bash 从 HTML 中提取数据

parsing - 使用 `grep` 、 `awk` 、 `sed` 或任何其他有能力的内容进行简单过滤

linux - 使用 sed 删除与正则表达式匹配的记录

regex - 空格如何在 bash shell 中使用 grep 的正则表达式中工作?

bash - 从文本文件中 Grep 多个字符串

javascript - 过滤 json 对象并循环结果 grep