2010年7月18日日曜日

sedコマンドの使い方

sedコマンドの使い方をいくつか解説します。

置換


文字列の置換を行うには、-eオプションに続けて置換したい文字列と置換後の文字列を指定します。

$ sed -e "s/置換したい文字列/置換後の文字列/g" ファイル名

出力先は標準出力です。リダイレクトを使えばファイルに記録できます。

$ sed -e "s/置換したい文字列/置換後の文字列/g" ファイル名 > 保存先ファイル名

ファイルに保存する別の方法として、-iオプションによって同名での上書き保存ができます。-iオプションの場合、同時に置換前のファイルがバックアップされるため便利です。

$ sed -i.bak -e "s/置換したい文字列/置換後の文字列/g" ファイル名

「-i.bak」と指定することで、ファイル名.bakがバックアップのファイル名になります。

ファイル名にワイルドカードを指定することで、複数のファイルを一度に置換できます。これは-eオプション単独ではできないので、-iオプションが便利です。

$ sed -i.bak -e "s/置換したい文字列/置換後の文字列/g" *

ここまで、sedを使った文字列の置換についてでした。

挿入


次は挿入についてです。sedは単なる置換用のコマンドではありません。Stream EDitorという名前の通り汎用的なエディタなので、テキストファイルに対して様々な編集が可能です。挿入もその1つです。

挿入する場合は-fオプションで外部ファイルからコマンドを読み込ませることで行います。
※複数業にわたるコマンドになるため、-eオプションでは不可

$ sed -f コマンドファイル名 編集対象ファイル名

コマンドファイルは以下のように記述します。
挿入したい行(何番目の行か){
i\
挿入したい文字列
}

挿入したい行として指定した行の手前に、挿入したい文字列が挿入されます。たとえば、
10{
i\
この文字列を挿入します。
}
とすると、10行目の手前、つまり9行目と10行目の間に「この文字列を挿入します。」という文字列が挿入されます。

出力先は置換の場合と同様に標準出力です。-iオプションで上書きできることも同様です。

--

0 件のコメント: