如何一次 grep 多个模式?

如何一次 grep 多个模式?

我想要获得与该模式匹配的每一行:

  • 某物
  • 某个地方
  • 某处

来自/data/rawlog.txt

我尝试了这个命令,但是失败了:

grep -e "[something|someplace|somewhere]" /data/rawlog.txt

有谁知道出了什么问题吗?

答案1

首先,你不需要括号。其次,你需要扩展正则表达式或转义管道。以下方法之一应该有效:

egrep -e "something|someplace|somewhere" /data/rawlog.txt
grep -e "something\|someplace\|somewhere" /data/rawlog.txt

如果要在叉子外面放置一些东西,请不要忘记对其进行分组。例如,如果您希望这些模式仅出现在行尾:

egrep -e "(something|someplace|somewhere)$" /data/rawlog.txt

请注意,括号也需要 egrep 或转义。

相关内容