SED групповая замена строк в файле

21 июня, 2012 | от | gnu/linux

Июн
21

Сегодня встала задача изменить принцип ротации логов postgresql на многих серверах. Править много строк через тектовый редактор было лень, поэтому познакомился с отличным средством - sed
Собственно говоря эти команды проходятся последовательно по файлу и меняют строку а на b

sed -i -e "s|#log_directory = 'pg_log'|log_directory = '/var/log/postgres/'|" /usr/local/pgsql/data/postgresql.conf &
sed -i -e "s|#log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log'|log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log' |" /usr/local/pgsql/data/postgresql.conf &
sed -i -e "s|#log_rotation_size = 10MB|log_rotation_size = 1GB|" /usr/local/pgsql/data/postgresql.conf &
sed -i -e "s|#logging_collector = off|logging_collector = on|" /usr/local/pgsql/data/postgresql.conf &
sed -i -e "s|#log_line_prefix = ''|log_line_prefix = '[%u %h]'|" /usr/local/pgsql/data/postgresql.conf &
sed -i -e "s/log_destination = 'syslog'/log_destination = 'csvlog'/" /usr/local/pgsql/data/postgresql.conf &
sed -i -e "s|log_statement = 'none'|log_statement = 'all'|" /usr/local/pgsql/data/postgresql.conf &

sed

Об авторе

Оставить комментарий