SED가 URL 문자열을 대체합니다.

SED가 URL 문자열을 대체합니다.

현재 출력 문자열을 다음으로 바꾸려고합니다.

http://domain1.com/subfolder1/http://domain2.com/subfolder2

이렇게하면 다음과 같이 출력됩니다.

http://domain2.com/subfolder2

SED를 사용하여 URL을 후자 도메인으로 대체하고 있지만 제대로 작동하지 않습니다. "domain1"을 "domain2"로 설정하면 작동하지만 전체 문자열을 바꿀 수 있기를 원합니다.

다음 코드를 사용하여 이 작업을 수행하려고 합니다.

for FILE in `cat/WORKDIR/$inputControlFileName`; do sed -i -e  "s~$SEARCHTEXT~$REPLACEWITH~g" $OutputDirectory/$FILE; done;

내 검색 매개변수는 http://domain1.com/subdomain/http://domain2.com/subdomain이고 대체 매개변수는 다음과 같습니다.http://domain2.com/subdomain

어떤 안내에도 감사드립니다.

업데이트 모든 분들의 도움에 감사드립니다. 마침내 domain1.com/domain.2.com을 출력한 다음 변수에 저장된 값을 이스케이프 처리하여 작동하게 했습니다.

답변1

이 시도,

echo "http://domain1.com/subfolder1/http://domain2.com/subfolder2" | sed 's/^http.*http:/http:/'
http://domain2.com/subfolder2

답변2

만약 너라면안 돼요가지다:URI에서는 bash 내장 명령을 통해서만 이 작업을 수행할 수 있습니다.

function last_addr(){
    IFS=: 
    string="$1"
    array=($string)
    echo -n http:; echo ${array[-1]}; unset IFS
}

last_addr 'http://domain1.com/subfolder1/http://domain2.com/subfolder2'

관련 정보