如何在 url 中的每个“/”之前插入“\”?

如何在 url 中的每个“/”之前插入“\”?

我有变量 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-我 干杯!

相关内容