Estoy tratando de editar mi archivo nginx.conf mediante programación, que contiene una línea como esta:
access_log /var/log/nginx/access.log;
que quiero lucir así:
access_log /dev/stdout;
Creo que la expresión regular ^\s*access_log([^;]*);
capturará la /var/log/nginx/access.log
parte en un grupo de captura, pero no estoy seguro de cómo reemplazar correctamente el grupo de captura con sed.
He intentado
echo " access_log /var/log/nginx/access.log;" | sed 's/^\s*access_log([^;]*);/\1\\\/dev\\\/stdout/'
pero recibo el error:
sed: -e expression #1, char 45: invalid reference \1 on `s' command's RHS
si lo intento, sed -r
entonces no hay error, pero la salida no es lo que espero:
/var/log/nginx/access.log\/dev\/stdout
Estoy tratando de ser inteligente con el grupo de captura y otras cosas y no buscar directamente "access_log /var/log/nginx/access.log;" en caso de que la distribución cambie la ubicación predeterminada del archivo de registro.
sed '/access_log/s|/[^;]\+|/dev/stdout|'