egrep多个字符串正则表达式在线开始

时间:2017-03-10 20:48:44

标签: regex bash grep

我正在尝试打印一个文件的行,该文件以'foo'或'bar'开头,从另一个名为'list'的命令的输出中输入。 看起来像 列表| egrep'foo | bar'> file.txt的 它可以工作,除了它在行中的任何地方拾取'foo'或'bar',而不仅仅是在开头。我尝试了各种各样的变体尝试在引号之前和之后使用正则表达式'^',用grep -P替换egrep,并以不同的方式移动引号。我无法弄清楚如何强制它只在它们出现在一行开头时使用这些术语。

1 个答案:

答案 0 :(得分:0)

您需要在^foo前面添加bar

echo -e "fooOK\nbarOK\n--fooNOK\n--barNOK" | egrep "^foo|^bar"
fooOK
barOK

或使用@anubhava建议的parens。