很多时候我必须在命令行中使用管道连接到 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/