sedとはviなどで行うファイルへの編集をコマンドラインで行うコマンドである。 sedとシェルスクリプトを組み合わせて使うことによって、 多くのファイルを自動的に編集することができる。
sedの基本的には以下の様な形で使う。
sed 'command' datafile
commandの部分にsedのコマンドを使えば、
datafileの中がそのコマンドによって編集(書き換えられたり、消されたり)する。
編集された結果は標準出力に出力される。
だから結果を保存しておきたい時には
リダイレクションなどを使って
ファイルに書き込んでおかなければならない。
sedを使う時に注意することは以下の通り。
ここではコマンドとしてp, d, sコマンドの例を紹介してあるが コマンドの種類や、オプションなどの使い方はこれだけではないので詳しいことは sedのリファレンス・マニュアルを参照のこと。
# cat data <- サンプルデータファイル test1 test2 test3 test4 tmp1 tmp2 tmp3 # sed '2p' data <- 2行目を表示するつもり test1 test2 <- -n を忘れると全部表示される test3 test4 test3 test4 tmp1 tmp2 tmp3 # sed -n '2p' data <- 2行目を表示 test3 test4 # sed -n '2,3p' data <- 2行目から3行目までを表示 test3 test4 tmp1 tmp2 tmp3 # sed -n '/tmp/p' data <- tmpを含む行を表示 tmp1 tmp2 tmp3 # sed -n '2,/tmp/p' data <- 2行目からtmpを含む行までを表示 test3 test4 tmp1 tmp2 tmp3 # sed '2d' data <- 2行目を削除 test1 test2 tmp1 tmp2 tmp3 # sed 's/test/aaa/' data <- testをaaaに変換 aaa1 test2 aaa3 test4 tmp1 tmp2 tmp3 # sed 's/test/aaa/g' data <- 全てのtestをaaaに変換 aaa1 aaa2 aaa3 aaa4 tmp1 tmp2 tmp3 # sed 's/test[23]/aaa/' data <- test2とtest3をaaaに変換 test1 aaa aaa test4 tmp1 tmp2 tmp3 #