sedで特定の文字を含む行をコメントアウトする方法

目次

 

どうも、クーです!

先日、対象ファイルのある文字を含む行をコメントアウトする作業をしておりました。
はじめは手動でやり始めたのですが、こちら対象ファイルが50件ほどあり...

流石にめんどくさい...!

そこで今回はsedを使って特定の文字を含む行をコメントアウトする方法をまとめていこうかと思います!

sedコマンドで対象文字列の置き換えを行う

sedコマンドは文字の置換や挿入を行えるコマンドです。

今回だと置換の用途で使いますね。
↓書式はこんな感じ

sed [オプション] 操作コマンド 対象ファイル

今回やりたいことは対象ファイルの中の対象文字列の先頭にコメントアウト(#)を挿入することです!

上の動作を実行するコマンドは下記になります!

sed -i '/検索文字列/s/^/# /g' 対象ファイル

まず、オプションは-iを指定してます。
こちらは対象ファイルを変更後の内容で上書き保存するオプションになります。
ですので実行する前に対象ファイルのバックアップなどを取っておいてくださいね!

そして操作コマンド部分ですが、こちらは「検索文字列」を含む行の「^(先頭)」を
# 」に置換するよという意味になります

また「g」を記載しておくことで、検索文字列にマッチするすべての場所を対象に処理を行うことができます。

最後に

手動でやっている編集作業なども今回のようにsedコマンドを使うことで、
一瞬で終わらせることが可能だったりします。

sedコマンドには他にもいろいろな使い方がありますので、
是非調べて活用してみてくださいね!

以上、クーでした!