Sto provando a modificare il mio file nginx.conf a livello di codice, che contiene una riga come questa:
access_log /var/log/nginx/access.log;
che voglio assomigliare a questo:
access_log /dev/stdout;
Credo che regex ^\s*access_log([^;]*);
acquisirà la /var/log/nginx/access.log
parte in un gruppo di acquisizione, ma non sono sicuro di come sostituire correttamente il gruppo di acquisizione con sed?
ho provato
echo " access_log /var/log/nginx/access.log;" | sed 's/^\s*access_log([^;]*);/\1\\\/dev\\\/stdout/'
ma sto ricevendo l'errore:
sed: -e expression #1, char 45: invalid reference \1 on `s' command's RHS
se provo sed -r
allora non c'è errore, ma l'output non è quello che mi aspetto:
/var/log/nginx/access.log\/dev\/stdout
Sto cercando di essere intelligente con il gruppo di acquisizione e quant'altro e non cercare direttamente "access_log /var/log/nginx/access.log;" nel caso in cui la distribuzione cambi il percorso del file di registro predefinito.
sed '/access_log/s|/[^;]\+|/dev/stdout|'