変数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 を使用します。-私 乾杯!