我有以下 CSSbackground-image
规则,其中我希望将 URL 替换为新域(你知道,为了通过无 cookie 域加载图像):
background-image : url(/image/test.png);
background-image : url("/image/test.png");
background-image : url('/image/test.png');
我可以先捕获引号/image
,然后用以下sed
表达式正确替换 URL:
local someVar=123
local replace='url\("\/\/img.mydomain.com\/'"$someVar"'\1\")'
sed -E 's,url\(.(.+).\),'"$replace"',g' file.css
片段
url\(.
处理 URL 字符串中的引号(单引号或双引号)。但是如果引号不存在(上面的第一个例子),正则表达式显然会失败。什么是正确的正则表达式来检查这个?
我尝试了以下方法,但它不起作用:
local someVar=123
local replace='url\("\/\/img.mydomain.com\/'"$someVar"'\1\")'
sed -E 's,url\((\'|\")(.+)(\'|\")\),'"$replace"',g' file.css
它只是抛出错误:syntax error near unexpected token `)'