WebサイトやWebアプリケーションは、一般的に複数のHTML、CSS、JavaScriptファイルから成ります。クラス名やライブラリのファイル名を毎回手動で探して修正するのと、ツールを使って一括で修正するのでは作業効率が大きく変わってきます。今回は、文字列の置換に特化したコマンド - sedをご紹介します。

sedとは

sed(Stream EDitor)とは、UNIX系のOSに付属するコマンドの1つです。テキストファイルや標準入力から1行ずつ読み込み、指定したパターンに従ってさまざまな処理をおこないます。さまざまなオプションや機能が用意されており、ちょっとした文字列の置換から高度な編集まで幅広く活用できます。

sedには「スクリプト」と呼ばれる考え方があります。処理したい内容をスクリプトとして記述し、sedに渡すことで「文字列の置換」や「行の削除」をおこなえます。第12回目で取りあげたgrepと同様、正規表現を用いることで、さまざまなパターンに適応する文字列の置換も可能です。

sedコマンドは文字列置換によく利用されますが、文字列置換以外にもさまざまな処理ができます。今回は、sedの使い方についてご紹介します。

Windows向けsed(GnuWin sed)のインストール

ここでは第13回同様、GnuWinプロジェクトのsedを使用します。

GnuWinのgrep

GnuWinのsedページにアクセスし、Complete package, except sourcesからインストーラ(Md5sum: d9cc0ee232603c1a0f8280fa2e6c100b)をダウンロードし、インストールをおこないます。

インストーラはウィザード形式

インストール先ディレクトリのカスタマイズをおこなわず、インストールをおこないます。sedをインストール後、環境変数PATHの設定をおこないます。PATHに設定するパスは、第13回「grepを使った文字列検索」と同様です。既に追加されている場合は、変更の必要はありません。

変数名 PATH
変数値 C:\Program Files\GnuWin32\bin

環境変数PATHを設定後、コマンドプロンプト上でsedコマンドを実行してみましょう。

Mac OS Xでsedを使用する

Mac OS Xでは、最初からsedがインストールされています。Mac OS Xには、GNU版のsedとBSD版のsedがインストールされています。それぞれ指定できるオプションが異なっているため、混同しないように注意しましょう。

GNU版のsedを用いる場合は、ターミナル上でgsedコマンドを実行します。

GNU版のsed(gsed)

BSD版のsedを用いる場合は、ターミナル上でsedコマンドを実行します。BSD版sedの詳しい使い方を参照するには、manコマンドを使用します。

man sedを実行し、BSD版のsedのマニュアルを表示

ここではWindowsにインストールしたsedに合わせて、GNU版sedの使い方をご紹介します。

sedの使い方

sedの書式は、次のようになっています。

sed オプション スクリプト 検索対象のファイル

まずはオプションを指定せず、sedで簡単な文字列の置換をおこなってみましょう。Webサイトで使用しているjQueryライブラリのアップデートのため、jQueryライブラリをロードしているHTMLの\