변수 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를 사용하십시오.-나 건배!