Linux 備忘録

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

というようになります。

  • 出力先は、標準出力である画面表示となりますので、出力ファイルを指定しなければ結果は表示するだけで、保存されません。

Leave a Comment

XHTML: Line-breaks are automatic. Available tags are <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong> <img localsrc="" alt="">