Regex 使用正则表达式提取命令

Regex 使用正则表达式提取命令,regex,splunk,Regex,Splunk,我需要提取命令,无论我们在()中看到什么,在下面一行的CMD后面 Oct 29 08:00:01 data2 crond[14368]: (root) CMD (sh -xv /home//ste-telnet.sh > /home/hari/logs/ste-telnet$(date +'%Y_%m_%d_%h_%m').succ 2> /home/hari/logs/ste-telnet$(date +'%Y_%m_%d_%h_%m').err) 我需要为此使用正则表达式,因为

我需要提取命令,无论我们在()中看到什么,在下面一行的CMD后面

Oct 29 08:00:01 data2 crond[14368]: (root) CMD (sh -xv /home//ste-telnet.sh > /home/hari/logs/ste-telnet$(date +'%Y_%m_%d_%h_%m').succ 2> /home/hari/logs/ste-telnet$(date +'%Y_%m_%d_%h_%m').err)
我需要为此使用正则表达式,因为splunk只理解它。

试试这个

CMD (.*)$

如果行中的最后一行是命令(包含CMD的列是最后一列),那么这将起作用。

这有点棘手。问题是这里有嵌套的括号。所以如果你使用

CMD \((.*)\)

在您的情况下,您将得到正确的结果(实际命令将在匹配的组编号1中),但如果您的字符串中有多个命令(或
CMD
之后的多组最外圆括号),则该结果将失败。

该命令是否始终覆盖字符串的其余部分?(字符串的结尾是否总是紧跟在结尾
?)在第一个(单词CMD之后)之间可以有多个((和))。您可以在任何linux机器上检查此文件#tail/var/log/cron