sedの基本
sed(Stream EDitor)は、非対話的にコマンドを実行するテキストエディタで ある。コマンドは引数で与えられ、入力は標準入力または引数で示されたファ イルからの入力となり、出力は標準出力が使用される。
同時に多くの編集作業をするのには向いていないが、パイプコマンドとして テキストストリームに加工を施す際に便利である。また、シェルコマンドと して実行できるため、シェルスクリプト内に埋め込んで実行するのにも向いている。
よく使われる置換スクリプトは以下の書式となります。
sed -e ”s/検索する言葉/置換する言葉/フラグ” 対象ファイル > 出力ファイル
- 最初の -e はオプションです。 オプションには以下のよなものがあります。
| -e スクリプト名 | 指定したスクリプト(条件式)で変換処理を行う |
| -f ファイル名 | 指定したファイルに記述されているコマンドやスクリプトに従って処理を行う |
| r | 指定したファイルに記述されているコマンドやスクリプトに従って処理を行う |
| -n | 結果を出力処理しない |
- フラグは、g(global),または数字(n=1 ~ )が記述されます。
g: その行で該当する箇所すべてを置き換えます。
n: その行で該当するn番目の箇所だけ置き換えます。行に何回も該当する箇所があったとしても該当するn番目の「検索する言葉」だけを置き換えます。
無記入のときは、ディフォル値 n=1 と解釈されます。
例) file-a.txt
memo memo memo
memo memo
このファイルを以下のスクリプトで置換すると
# sed -e ’s/memo/備忘録/g file-a.txt
備忘録 備忘録 備忘録
備忘録 備忘録
# sed -e ’s/memo/備忘録/2 file-a.txt
memo 備忘録 memo
memo 備忘録
# sed -e ’s/memo/備忘録/ file-a.txt
備忘録 memo memo
備忘録 memo
というようになります。
- 出力先は、標準出力である画面表示となりますので、出力ファイルを指定しなければ結果は表示するだけで、保存されません。