sdで複数ファイルの全文置換をお手軽に実現する


みなさんはCLIで複数ファイルの全文置換を行い時に何を使っていますか?

多くの人はsedをベースにfind系ツールやxargsなどをパイプで組み合わせていることと思いますが、いざ置換を行う際にぱっとコマンドが思い浮かばない人も多いことでしょう。

そんな時にsedの代替として開発されたsd(Search & Displace)を使えば、簡単に全文置換を実現できます。

sdのインストール

brewでインストールするだけです。

brew install sd

sdの使い方

以下のようにシンプルです。

sd 置換前の文字 置換後の文字 対象ファイル(正規表現)

sdの使用例

使用例を具体的に見てみましょう。どれも直感的です。

特定のファイルに対して全文置換

sd before after file

ディレクトリ配下の全ての.jsファイルに対して全文置換

sd before after *.js

ディレクトリ配下の全ての.jsファイルに対して全文置換 (再帰的)

sd before after **/*.js

改行をカンマに置換

sd '\n' ',' file

まとめ

sdを使うことで、短く覚えやすいコマンドで複数ファイルの全文置換が行えます。