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}シェルで使用できる置換を使用します。置換はパターン内の各項目を代替テキストに置き換え、上記のコードは結果を変数に保存します。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

インラインを交換するには sed を使用します。-私 乾杯!

関連情報