파일의 내용은 다음과 같습니다.
<?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
. 이 예는 %
명령의 구분 기호 로 사용됩니다 .sed
s
sed -i '' -e "s%stable-[^/]*%stable-2.233%g" ${FILE_PATH}