是否可以将这两个grep查询折叠成一行命令?
我想下载网页的源代码,然后检查是否有一个字符串,是否有另一个字符串。我有下面的工作代码-是否可以将整个脚本作为一行命令来执行是否可以将这两个grep查询折叠成一行命令?,grep,Grep,我想下载网页的源代码,然后检查是否有一个字符串,是否有另一个字符串。我有下面的工作代码-是否可以将整个脚本作为一行命令来执行 PAGE_SOURCE=`curl https://example.com` if ! echo "$PAGE_SOURCE" | grep -q "string that is bad"; then if echo "$PAGE_SOURCE" | grep -q "string that
PAGE_SOURCE=`curl https://example.com`
if ! echo "$PAGE_SOURCE" | grep -q "string that is bad"; then
if echo "$PAGE_SOURCE" | grep -q "string that is good"; then
exit 0
fi
fi
exit 1
你可以用
if grep -Pq '^(?!.*string that is bad).*string that is good'; then
exit 0
fi
thread中描述的众所周知的PCRE模式应该放在一个带引号的字符串中,否则需要转义代码>字符,因为它用于扩展历史记录
简短的模式描述:
^
-字符串的开头
(?!.*坏字符串)
-如果存在尽可能多的0+字符而不是换行符,则会导致匹配失败,然后在当前位置右侧立即出现坏字符串
*好的字符串
-尽可能多的0+字符(换行字符除外),然后好的字符串
如果echo“$PAGE_SOURCE”| grep-Pq”^(?。*字符串不好)。*字符串好”;那么
对您有效吗?不,我收到错误消息“在(?或(?--)之后无法识别字符,对不起,grep-Pq'^(?。。。*字符串不好)。*好的字符串
应该有效,使用单引号。!
在双引号字符串中展开。看起来很有效,谢谢