Bashのsedコマンドでファイルのテキストを置換する方法について紹介します。
$ cat > hoge.md
hoge
hogehoge
hoge
$ sed -Ei 's/^(hoge)/# \1/g' hoge.md
$ cat hoge.md
# hoge
# hogehoge
# hoge
ポイント:
\1
でグループマッチの再利用を使えるようにするためには-E
コマンドが必要。
(もしかしたら環境によっては-Ei
ではなく-ei
にする必要があるかも知れない。わからない。)
使用例
MySQLでローカルネットワークアクセスできるようにするためにvim mysqld.cnf
でbind-addressをコメントアウトする必要がある。
これを自動化する。
sudo cp /etc/mysql/mysql.conf.d/mysqld.cnf /etc/mysql/mysql.conf.d/mysqld.cnf.bak
sudo sed -Ei 's/^(bind-address)/# \1/g' hoge.md /etc/mysql/mysql.conf.d/mysqld.cnf