我有变量 URL_1 = https://my/sample/url
。我如何获得 URL_2 = https:\/\/my\/sample\/url
?
答案1
假设有一个像这样的外壳bash
:
URL_1='https://my/sample/url'
URL_2=${URL_1//\//\\\/}
这使用${variable//pattern/replacement}
某些 shell 中可用的替换,以URL_1
字符串\/
(即转义斜杠)作为变量作为模式,以及\\\/
(即转义反斜杠后跟转义斜杠)作为替换文本。替换将模式的每个匹配项替换为替换文本,上面的代码将结果存储在变量 中URL_2
。
测试:
$ URL_1='https://my/sample/url'
$ URL_2=${URL_1//\//\\\/}
$ printf '%s\n' "$URL_2"
https:\/\/my\/sample\/url
你也可以使用
URL_2=${URL_1//'/'/'\/'}
(即,使用单引号而不是反斜杠转义)。
答案2
尝试
$ sed 's%/%\\/%g' < <(echo https://my.domain.com/blabla/temp.htm)
https:\/\/my.domain.com\/blabla\/temp.htm
答案3
你可以这样解决——
user@node-01:~> echo https://my/sample/url > ./test1.txt
user@node-01:~> cat test1.txt
https://my/sample/url
user@node-01:~> sed 's/\//\\\//g' test1.txt
https:\/\/my\/sample\/url
如果你想替换 inline 请使用 sed-我 干杯!