示例:
我想要grep“变量。* =”
但我也得到了结果:
“variable ==”
那么,如何只为变量后跟等于符号('='),而不是等号检查操作符('==')。
答案 0 :(得分:1)
可能有点矫枉过正,但您可以使用grep -P '.*(?<!=)=(?!=).*'
。
它将与variable=x
匹配,但不会与variable==x
匹配。它使用负面的lookbehind和lookahead来实现这一点。
答案 1 :(得分:1)
假设您在一行结尾处没有预料到variable =
,那么下面的正则表达式将会执行您想要的操作。它的=
后跟[^=]
(即任何不是=
的内容。)
我已使用<space>*
跳过空格。您使用的.*
会跳过任何内容,因此您将匹配variable2 =
。
或者你可以使用\s
来跳过所有空格,但我认为在这种情况下你可能只想跳过空格。
grep 'variable *=[^=]'
答案 2 :(得分:0)
grep 'variable[^=]*=$\|variable[^=]*=[^=]'