Shell 想要一个正则表达式脚本,它只能找到一个变量,后跟'=';;但不是'==';
例如: 我想用grep表示“variable.*=” 但我也得到了如下结果: “变量==”Shell 想要一个正则表达式脚本,它只能找到一个变量,后跟'=';;但不是'==';,shell,grep,Shell,Grep,例如: 我想用grep表示“variable.*=” 但我也得到了如下结果: “变量==” 那么,grep怎么可能只针对后跟等号('=')的变量,而不针对“相等检查运算符”('=')。可能有点过分,但您可以使用grep-p.*(?假设您不希望变量=在一行末尾,那么下面的正则表达式将执行您想要的操作。它是=后跟[^=](即任何不是=的东西) 我使用了*跳过空格。您使用的*将跳过任何内容,因此您将匹配变量2= 或者,您可以使用\s跳过所有空格,但我认为在这种情况下,跳过空格可能就是您想要的 grep
那么,grep怎么可能只针对后跟等号('=')的变量,而不针对“相等检查运算符”('=')。可能有点过分,但您可以使用
grep-p.*(?假设您不希望变量=
在一行末尾,那么下面的正则表达式将执行您想要的操作。它是=
后跟[^=]
(即任何不是=
的东西)
我使用了*
跳过空格。您使用的*
将跳过任何内容,因此您将匹配变量2=
或者,您可以使用\s
跳过所有空格,但我认为在这种情况下,跳过空格可能就是您想要的
grep 'variable *=[^=]'
我试图想出一些办法,并想出了这个grep'变量[^=]*=$\\124;变量[^=]*=[^=]'
,只是为了确保variable[^=]*=
在这一特殊情况的末尾。要处理行末尾的变量=
,可以使用“extended”带有grep的正则表达式,并使用$
来指示行的结尾:grep-E'变量*=([^=]|$)'
我刚刚注意到-P在FreeBSD上不可用,仅供参考;)
grep 'variable[^=]*=$\|variable[^=]*=[^=]'