2016-11-28 134 views
1

文件的正则表达式结束:猛砸串

xss.filter.rule.lonely_script_tags2=(?ims)<script(.*?)> 
xss.filter.rule.onload=(?ims)onload(.*?)\= 
xss.filter.rule.script_fragments=(?i)<script>(.*?)</script> 
xss.filter.rule.src=(?ims)[\\s\r\n]+src[\\s\r\n]*\=[\\s\r\n]*'(.*?)' 
xss.filter.rule.vbscript=(?i)vbscript\: 
tomcat.javaoptions=-Dasdkalslds \ 
    -agentpath:/opt/hybris/bin/platform/resources/dynatrace/agent/lib64/libdtagent.so=name=hybris-app-1,server=local.com:9998 

我用正则表达式来查找文件包含像字符串:

tomcat.javaoptions= *****Any content and Any times/lines***** 
-agentpath:/opt/hybris/bin/platform/resources/dynatrace/agent/lib64/libdtagent.so=name=hybris-app-1,server=local.com:9998 

CHECK_EXPRESSION="tomcat.javaoptions=(.*\n)*.*agentpath:/opt/hybris/bin/platform/resources/dynatrace/agent/lib64/libdtagent.so=name=hybris.*" 

grep -qP "$CHECK_EXPRESSION" /opt/hybris/config/local.properties 

,但它并不适用于

tomcat.javaoptions=-Dasdkalslds \ 
    -agentpath:/opt/hybris/bin/platform/resources/dynatrace/agent/lib64/libdtagent.so=name=hybris-app-1,server=local.com:9998 

但是工作适用于

tomcat.javaoptions=-Dasdkalslds -agentpath:/opt/hybris/bin/platform/resources/dynatrace/agent/lib64/libdtagent.so=name=hybris-app-1,server=local.com:9998 

我想补充一点,在线正则表达式检查器显示我的正则表达式正常。但它不适用于grep。可能问题在于grep。

+0

你必须在你的正则表达式“的hybris应用程序内”额外“应用”,应该是“采用hybris-1”或“杂交体\ d”,而不是 – MYGz

+0

我纠正,但仍没有运气 – Tobymaro

+0

你能包括你想在你的问题中匹配更多的行? – MYGz

回答

0

解决!我添加了“z”键。它解决问题与新线从人的grep

-z

​​

,--null
输出一个零字节(ASCII码NULL字符),而不是通常遵循一个文件名字符。例如,grep -lZ在每个文件名后面输出 零字节,而不是通常的换行符。此选项使输出清晰可辨,即使文件名 包含不正常字符(如换行符)。这个选项可以与find -print0,perl-0,sort -z和xargs -0到 等命令一起使用来处理任意文件名,甚至包含那些包含换行符的文件名。