현재 출력 문자열을 다음으로 바꾸려고합니다.
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'