패턴이 일치하는 경우 "}" 끝에 콘텐츠를 추가하려면 어떻게 해야 하나요?

패턴이 일치하는 경우 "}" 끝에 콘텐츠를 추가하려면 어떻게 해야 하나요?

다음과 같은 내용이 있는 경우:

hello {sdsdsdsds} pattern {askjdasjkdjasd} hello {siadsd} pattern {iuewer} 

따라서 패턴이 이전에 일치했다면 .output {*}을 추가해야 합니다 ;.

hello {sdsdsdsds} pattern {askjdasjkdjasd}; hello {siadsd} pattern {iuewer};

네, 딱 한 줄이에요.

이제 나는 다음과 같은 것을 생각합니다.

's{.*}/

sed하지만 내용을 어떻게 기억하는지 잘 모르겠습니다 .*.

그리고 이런 게 있어요.

'/pattern\ {.*}/ s/$/;/'

하지만 행이 하나만 있기 때문에 작동하지 않습니다.

답변1

내가 찾고 있는 문제를 올바르게 이해했다면

sed 's/\(pattern {[^}]*}\)/\1;/g'

where \1내부에서 일치하는 모든 것을 대체합니다 \(...\).

산출:

hello {sdsdsdsds} pattern {askjdasjkdjasd}; hello {siadsd} pattern {iuewer};

관련 정보