Bash grep命令以或以其结尾

时间:2014-04-25 10:48:40

标签: bash unix terminal grep

我在一个命令之后,根据一个以给定模式开头或结尾的模式匹配返回结果。

这是我到目前为止所做的。

"cat input.txt | grep "^in|in$"

我的主要问题是我无法让(或)工作,但我可以让他们单独工作。

提前感谢您的帮助。

3 个答案:

答案 0 :(得分:6)

试试这个:

grep "^in\|in$" input.txt

默认情况下,grep使用BRE,您必须转义|。或者使用grep的-E or -P,以避免转义那些具有特殊含义的字符。

P.S,cat没有必要。

答案 1 :(得分:0)

awk应该有效:

awk '/^start|end$/' file

它将打印以start开头或以end

结尾的所有行
cat file
nothing
start with this
or it does have an end
or the end is near

awk '/^start|end$/' file
start with this
or it does have an end

答案 2 :(得分:0)

你有没有想过使用egrep而不是grep?使用以下内容应该适用于您所追求的目标:

egrep "^in|in$" input.txt

一开始就没有必要使用猫,上面的工作正常。