nginx.conf 파일을 프로그래밍 방식으로 편집하려고하는데 다음과 같은 줄이 포함되어 있습니다.
access_log /var/log/nginx/access.log;
나는 이것처럼 보이고 싶다 :
access_log /dev/stdout;
정규식 ^\s*access_log([^;]*);
이 캡처 /var/log/nginx/access.log
그룹 의 부품을 캡처 한다고 생각 하지만 캡처 그룹을 sed로 올바르게 바꾸는 방법을 잘 모르겠습니까?
난 노력 했어
echo " access_log /var/log/nginx/access.log;" | sed 's/^\s*access_log([^;]*);/\1\\\/dev\\\/stdout/'
하지만 오류가 발생합니다.
sed: -e expression #1, char 45: invalid reference \1 on `s' command's RHS
시도하면 sed -r
오류가 없지만 출력이 예상과 다릅니다.
/var/log/nginx/access.log\/dev\/stdout
캡처 그룹에 대해 현명하게 노력하고 있으며 "access_log /var/log/nginx/access.log;"를 직접 검색하지 않습니다. 배포시 기본 로그 파일 위치가 변경되는 경우
sed '/access_log/s|/[^;]\+|/dev/stdout|'