設定ファイルの何行目に行を追加したい、とかこのセクションに行を追加したい、っていう場面は多い。
エディタでやるのも良いけど手順書にするなら CUI のコマンドだけで表現したいところ。
今回はそれを sed コマンドで片付ける方法について。
例えば以下の MySQL 設定ファイルがあるとする。
$ cat /etc/my.cnf [mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock user=mysql # Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0 [mysqld_safe] log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid
$ sudo sed -i -e "/^\[mysqld\]$/a default-storage-engine=InnoDB" /etc/my.cnf
$ cat /etc/my.cnf [mysqld] default-storage-engine=InnoDB datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock user=mysql # Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0 [mysqld_safe] log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid
$ sudo sed -i -e "1a default-storage-engine=InnoDB" /etc/my.cnf
$ sudo sed -i -e "/^default-storage-engine=InnoDB$/i bind-address=127.0.0.1" /etc/my.cnf
$ cat /etc/my.cnf [mysqld] bind-address=127.0.0.1 default-storage-engine=InnoDB datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock user=mysql # Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0 [mysqld_safe] log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid