我有一个 Visual Studio 项目,是本地开发的。代码文件必须部署到远程服务器。唯一的问题是它们包含的 URL,这些 URL 是硬编码的。
该项目包含 URL,例如?page=one
。为了使链接在服务器上有效,它必须是/page/one
.
我决定在部署之前用 sed 替换代码文件中的所有 URL,但我陷入了斜杠。
我知道这不是一个很好的解决方案,但它很简单并且可以节省我很多时间。我需要替换的字符串总数少于 10 个。需要检查的文件总数约为 30 个。
描述我的情况的示例如下:
我正在使用的命令:
sed -f replace.txt < a.txt > b.txt
replace.txt
其中包含所有字符串:
s/?page=one&/pageone/g
s/?page=two&/pagetwo/g
s/?page=three&/pagethree/g
a.txt
:
?page=one&
?page=two&
?page=three&
内容b.txt
运行 sed 命令后:
pageone
pagetwo
pagethree
我想要的是b.txt
包含装有:
/page/one
/page/two
/page/three
最简单的方法是在搜索/替换行中使用不同的分隔符,例如:
s:?page=one&:pageone:g
您可以使用不属于任一字符串的任何字符作为分隔符。或者,您可以使用反斜杠将其转义:
s/\//foo/
哪个将取代/
with foo
。如果您不知道替换字符串中可能出现哪些字符(例如,如果它们是 shell 变量),则需要使用转义反斜杠。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)