AIX - 使用egrep进行包括变量在内的多个字符串的模式匹配

AIX - 使用egrep进行包括变量在内的多个字符串的模式匹配

我试图想出一个egrep命令,它可以对一组字符串和变量进行模式匹配。到目前为止,我正在使用以下内容:

ps -ef <uid> | egrep "string1|string2" | egrep -v "string4|string5" | grep -v "${variable}"

这是可行的,但我试图拥有一种统一且高效的语法。

我可以在 Linux 上使用以下命令,但在 AIX 上则不行:

ps -ef <uid> | egrep "string1|string2" | grep -v "${variable}\|string4\|string5" 

我已经浏览了手册页并尝试了egrep -c 等,但无法使任何组合工作。

答案1

您将 grep 和 egrep 命令混合在一起,并删除了-Egrep 所需的标志,以便它解析|为交替正则表达式。或者自始至终使用egrep。

使用其中之一:

ps -ef | egrep "string1|string2" | egrep -v "${variable}|string4|string5"

或者

ps -ef | egrep "string1|string2" | grep -Ev "${variable}|string4|string5"

...在任一情况下都要小心转义正则表达式标记variable(或各种 stringN,就此而言)。

也可以看看:为什么我的正则表达式在 X 中有效但在 Y 中无效?

相关内容