wal_levelパラメーターのコメントを外して、値を最小からアーカイブに変更したいと思います。
sed / perl one-linerを使用してどうすればこれを行うことができますか?
$ grep wal_level /var/lib/pgsql/data/postgresql.conf
#wal_level = minimal # minimal, archive, or hot_standby
予想される結果:
wal_level = archive # minimal, archive, or hot_standby
「#」にはwal_level
複数のスペースを含めることができます。
たとえば、
# wal_level = minimal
または
# wal_level = minimal
など。
ベストアンサー1
これは働きます:
sed 's/^ *# *wal_level *= *[^ ]*/wal_level = archive/'
また、コメントの前には空白を 1 つ許可し(万が一の場合に備えて)、他の場所では空白を 0 個以上許可します。またはPerlでは:
perl -pe 's/^\s*#\s*wal_level\s*=\s*\S+/wal_level = archive/' file