Saya mencoba mengedit file nginx.conf saya secara terprogram, yang berisi baris seperti ini:
access_log /var/log/nginx/access.log;
yang saya ingin terlihat seperti ini:
access_log /dev/stdout;
Saya percaya regex ^\s*access_log([^;]*);
akan menangkap /var/log/nginx/access.log
bagian dalam grup tangkap, tapi saya tidak yakin bagaimana cara benar mengganti kelompok tangkap dengan sed?
Saya sudah mencoba
echo " access_log /var/log/nginx/access.log;" | sed 's/^\s*access_log([^;]*);/\1\\\/dev\\\/stdout/'
tapi saya mendapatkan kesalahan:
sed: -e expression #1, char 45: invalid reference \1 on `s' command's RHS
jika saya coba sed -r
maka tidak ada kesalahan, tetapi hasilnya tidak seperti yang saya harapkan:
/var/log/nginx/access.log\/dev\/stdout
Saya mencoba menjadi pintar dengan grup tangkap dan yang lainnya dan tidak mencari langsung "access_log /var/log/nginx/access.log;" dalam hal distribusi mengubah lokasi file log default.
sed '/access_log/s|/[^;]\+|/dev/stdout|'