文件:
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 :(得分:0)
答案 1 :(得分:0)
解决!!!我添加了“z”键。它解决了新行的问题
grep -Pqzo "$CHECK_EXPRESSION" $SPARK_HOME/hybris/config/local.properties
来自man grep
-z, - null
输出零字节(ASCII NUL字符),而不是通常在文件名后面的字符。例如,grep -lZ输出a 每个文件名后面的零字节,而不是通常的换行符。即使存在文件名,此选项也会使输出明确无误 包含不正常的字符,如换行符。此选项可用于find -print0,perl -0,sort -z和xargs -0等命令 处理任意文件名,甚至包含换行符的文件名。