I have a Visual Studio project, which is developed locally. Code files have to be deployed to a remote server. The only problem are the URLs they contain, which are hard-cod
The easiest way would be to use a different delimiter in your search/replace lines, e.g.:
s:?page=one&:pageone:g
You can use any character as a delimiter that's not part of either string. Or, you could escape it with a backslash:
s/\//foo/
Which would replace /
with foo
. You'd want to use the escaped backslash in cases where you don't know what characters might occur in the replacement strings (if they are shell variables, for example).
please see this article http://netjunky.net/sed-replace-path-with-slash-separators/
Just using | instead of /
A very useful but lesser-known fact about sed is that the familiar s/foo/bar/
command can use any punctuation, not only slashes. A common alternative is s@foo@bar@
, from which it becomes obvious how to solve your problem.
A simplier alternative is using AWK as on this answer:
awk '$0="prefix"$0' file > new_file
Great answer from Anonymous. \ solved my problem when I tried to escape quotes in HTML strings.
So if you use sed to return some HTML templates (on a server), use double backslash instead of single:
var htmlTemplate = "<div style=\\"color:green;\\"></div>";
replace.txt
should be
s/?page=/\/page\//g
s/&//g