将 grep 命令与包含特殊字符的 env 变量一起使用时出现问题

将 grep 命令与包含特殊字符的 env 变量一起使用时出现问题

ksh我的 unix 帐户 ( )中有一个变量“abc”,其值为“xyz*!@#” 。我使用export命令将此变量导出到环境中。当我使用grep如下命令时

env |grep xyz

我得到输出

abc=xyz*!@#

但是当我使用以下命令时

env | grep xyz*!

正如预期的那样,我没有得到输出

abc=xyz*!@#

事实上,我根本没有得到任何输出。

答案1

*在正则表达式中有特殊含义,所以转义它:

env | grep 'xyz\*!'

或者使用-F选项告诉grep将参数视为纯文本,而不是正则表达式:

env | grep -F 'xyz*!'

相关内容