在sed中,
&
将替换为匹配的字符串,因此如果我们可以假设文件名和单词边界中没有空格,那么这就是您想要的:
预打印覆盖:。png\b:{{媒体(“&”)}}}:g级
联机试用
除了进行替换之外,您的代码还有几个值得一提的问题:
-
<代码>图像/*。png将匹配图像/foo。png,但它也将匹配图像/foopng。不要忘记转义正则表达式字符:<代码>图像/*\。png
-
sed量词总是贪婪的。假设您有以下输入:
Foo图像/bar。png baz图像/qux。png quux
在本例中,表达式为<代码>图像/*\。png将匹配从第一张图像到最后一张图像的所有内容。png
。上述解决方案通过使用\S而不是来避免这种情况仅匹配非空白字符
在线试用!
除了进行替换之外,您的代码还有几个值得一提的问题:
-
images/.*.png
将匹配
images/foo.png
,但也会匹配
images/foopng
. 不要忘记转义正则表达式字符:
images/.*\.png
.
-
sed量词总是贪婪的。假设您有以下输入:
Foo images/bar.png baz images/qux.png quux
在本例中,表达式
图像/*\。巴布亚新几内亚
从一开始就匹配
images
直到最后
.png
. 上述解决方案通过使用
\S
而不是
.
仅匹配非空白字符。