sed를 사용하여 특정 패턴 내에서 패턴을 찾고 바꾸는 방법

sed를 사용하여 특정 패턴 내에서 패턴을 찾고 바꾸는 방법

그것은 "sed"인 것 같고 나는 결코 친구가 될 수 없을 것입니다 ...

특정 범위(다른 패턴 내) 내의 패턴을 찾고 바꾸는 방법은 무엇입니까?

즉, AllowOverride None다음 범위에서:를 찾아 다음으로 바꿉니다.AllowOverride All

...
<Directory "/var/www/html">
some text
more text
some comments
AllowOverride None
more text
</Directory>
...

참고하세요(아직 수행되지 않은 경우): 이것은 더 많은 "모듈"을 포함하는 httpd.conf와 관련되어 있으며 모두 다음으로 끝납니다.</Directory>

이 명령은 yaml 파일에서 사용되므로 한 줄의 코드를 사용하여 이를 구현하는 것이 좋을 것입니다(알고 있지만 한 줄의 코드는 매우 빨리 보기 흉해질 수 있습니다...).

또한: 저는 sed를 사용합니다. (필수입니다. 이유는 묻지 마세요. :))

답변1

GNU sed 사용:

sed -i -e '/<Directory "\/var\/www\/html">/,/<\/Directory>/{s/AllowOverride None/AllowOverride All/}' filename

관련 정보