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

관련 정보