我正在尝试打印一个文件的行,该文件以'foo'或'bar'开头,从另一个名为'list'的命令的输出中输入。 看起来像 列表| egrep'foo | bar'> file.txt的 它可以工作,除了它在行中的任何地方拾取'foo'或'bar',而不仅仅是在开头。我尝试了各种各样的变体尝试在引号之前和之后使用正则表达式'^',用grep -P替换egrep,并以不同的方式移动引号。我无法弄清楚如何强制它只在它们出现在一行开头时使用这些术语。
答案 0 :(得分:0)
您需要在^
和foo
前面添加bar
:
echo -e "fooOK\nbarOK\n--fooNOK\n--barNOK" | egrep "^foo|^bar"
fooOK
barOK
或使用@anubhava建议的parens。