我有许多日志中的命令。我过滤了所有的日志与“useradd”在他们,但现在我想dicard一些误报:
- .../etc/默认值/用户添加...
- ....../man 8/用户添加...
问题是,我希望看到其中包含误报和真实的命令的行(参见测试用例)。
我只能使用(一个或多个)python正则表达式,因为我正在使用一个日志分析器程序-所以没有真实的的python程序。
(!/etc/default/|/man8/)useradd # no match
(?<!/etc/default/|/man8/)useradd # look-behind requires fixed-width pattern
(?<!fault/|/man8/)useradd # works, but that's strange
在对其他问题的回答中,正则表达式被更改,以便可以使用前瞻-但我不认为这在这里是可能的。
[编辑:添加了一些测试用例]
## no match
cat /etc/default/useradd
less /usr/share/man/ja/man8/useradd.8.gz
## match:
useradd evil
/usr/sbin/useradd
cat /etc/default/useradd; useradd evil
cat /etc/default/useradd; /usr/sbin/useradd evil
cat /etc/default/useradd; cd /usr/lib/; ../sbin/useradd evil
1条答案
按热度按时间wztqucjr1#
您可以改用前瞻Assert:
看它live on regex101.com。