파일의 문자열을 SED로 교체

파일의 문자열을 SED로 교체

파일의 내용은 다음과 같습니다.

<?xml version='1.1' encoding='UTF-8'?>
<sites>
  <site>
    <url>https://host.com/path/another-path/stable-1.630/update-center.json</url>
  </site>
</sites>

나는 다음을 시도했다:

sed -i '' -e "s/stable-\d+.\d+/stable-2.233/g" ${FILE_PATH}

본질적으로 내 의도는 "stable-" 다음의 버전 번호를 바꾸는 것입니다.그러나 텍스트를 대체하지 않는 것 같습니다.

답변1

한 가지 접근 방식은 버전 번호에 대해 정규식을 덜 "까다롭게" 만드는 것입니다. 검색하려는 문자열은 stable-슬래시가 아닌 문자가 여러 개 뒤에 오는 문자열이라고 가정할 수 있습니다. 그러나 이 정규식 자체에는 슬래시가 포함되므로 구분 기호를 사용하는 것이 편리합니다.다른/표현 자체 보다는 sed. 이 예는 %명령의 구분 기호 로 사용됩니다 .seds

sed -i '' -e "s%stable-[^/]*%stable-2.233%g" ${FILE_PATH}

관련 정보