извлечение команды с помощью регулярного выражения - PullRequest
0 голосов
/ 29 октября 2011

Мне нужно извлечь команду, что бы мы ни видели в () после слова 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 понимает только это.

Ответы [ 2 ]

1 голос
/ 29 октября 2011

Попробуйте это

CMD (.*)$

Это будет работать, если последним в строке является команда (столбец с CMD является последним столбцом)

0 голосов
/ 29 октября 2011

Это немного сложно. Проблема в том, что у вас там есть вложенные скобки. Так что если вы используете

CMD \((.*)\)

вы получите правильный результат в вашем случае (фактическая команда будет в группе с номером 1 матча), но она потерпит неудачу, как только у вас будет более одной команды (или более одного набора внешних скобок) после CMD) в вашей строке.

...