sed



sedについて

sedは「Stream EDitor」の略であり、非対話的なストリーム指向(ファイルからの入力を一度に一行ずつ読み込み、結果を標準出力に書き出す)エディタです。

文字列操作内容を外部ファイル(スクリプト)として指定したり、正規表現によるパターンマッチング処理を行うなど、テキストファイルの編集作業を効率的に行うことができます。


sedコマンドライン構文

sedの起動方法は、コマンドラインで編集命令を指定する方法と、命令を記述したファイル(scriptfile)を指定する方法の2種類があります。

sed [-e] 'command' file(s)
sed -f scriptfile file(s)

-e command 複数の編集コマンド用いる場合に指定します。
-f script 編集コマンドの記述されたファイルとして認識します、

sedコマンド構文

sedの命令はアドレスと編集コマンドで構成されます。

[アドレス[,アドレス]]コマンド[コマンド引数]

文字列操作において、特定行に対して実行させる場合にアドレスを指定します。

アドレスの指定は、「数(行目)」「特殊記号」「正規表現」のいずれかを用います。

範囲を示したい時は、「,(カンマ)」を用います。


文字列置換

置換コマンドはaddressにマッチする行に対して適用されます。アドレスが指定されていない場合にはpatternにマッチする全ての行で置換処理が実行されます。

[address]s/pattern/replacement/flags

固定文字列を置換する場合、「s」コマンド指定します。

文字列「windows」を「unix」に置換する場合には下記の表記となります。ただし、行で最初に現れる対象文字列のみが置換されます。

s/windows/unix/

一行中に表れる全ての対象文字列をに置換うる場合は,「g」(Global) オプションを指定します。

s/windows/unix/g

文字列削除

行の削除を行うには, d(Delete)コマンドを指定します。

行がアドレスにマッチした場合、行のマッチ部分だけでなく、行全体が削除されます。

/bug/g
/^$/d

特定の文字列のみを削除する場合には置換処理を用います。

s/debug//g


関連

awk

正規表現

正規表現サンプル



スポンサード リンク