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//'/'/'\/'}

(つまり、バックスラッシュエスケープの代わりに一重引用符を使用してください)。

おすすめ記事