如何替换最后一个匹配项dot?
例如,我想将test.jpg更改为test.th.jpg
我尝试过的
echo "test.jpg" | sed 's@[^\.]*$@\.th.@g'
Run Code Online (Sandbox Code Playgroud)
这应该工作:
$ echo "test.jpg" | sed 's/\.\([^.]*\)$/.th.\1/'
Run Code Online (Sandbox Code Playgroud)
它给:
test.th.jpg
Run Code Online (Sandbox Code Playgroud)
说明:
\. literal dot
\( start capturing group
[^.] any character except dot
* zero or more
\) close capturing group
$ end of line
Run Code Online (Sandbox Code Playgroud)
在替换中\1替换第一个捕获组的内容:)