我试图想出一个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 命令混合在一起,并删除了-E
grep 所需的标志,以便它解析|
为交替正则表达式。或者自始至终使用egrep。
使用其中之一:
ps -ef | egrep "string1|string2" | egrep -v "${variable}|string4|string5"
或者
ps -ef | egrep "string1|string2" | grep -Ev "${variable}|string4|string5"
...在任一情况下都要小心转义正则表达式标记variable
(或各种 stringN,就此而言)。