sedのメモページ
文字の置換
hogeをhomuに変えたいときは、
sed "s/hoge/homu/" file.txt
とする。ただ、このままだと、「各行ごとの、最初のhoge『だけ』をhomuに置換する(つまり、後ろにhogeがあっても無視される)」となってしまうので、/の後ろにgをつけて、
sed "s/hoge/homu/g" file.txt
としておくと安心。置換の条件を加えることもできて、例えば1-3行目のみ、置換を加えたいときは、
sed "1,3s/hoge/homu/g" file.txt
などと書くこともできる。
行の削除
ファイルの特定の行のみ削除したいときも、sedは便利。1-3行目のみを削除したい場合は、
sed "1,3d" file.txt
とすればよい。
条件に合致するものに対して、文字を追加
例えば、今、irasなんとか、という天体名が合致したときに、
"Homuhomu said:"というのを加えたかったら、
sed "s/iras.*/Homuhomu said: &/g"
などのように、マッチングした文字列は、&というので表現が可能である。
条件に合致したものを記憶したい
sedではグルーピング機能がある。例えば、任意の文字列を表現するには".*"とすればよいが、それを記憶させて、後で使い時は、"\(.*\)"とカッコで囲えばよい。具体例として、sedを用いて、1列目と2列目を入れ替えてみる。
sed -e "s/\(.*\) \(.*\)/\2 \1/g"
となる。\1や\2は、グルーピングされたものを現しており、数字は、グルーピングされたもののうち、左側からふられる番号である。
最終更新:2012年02月11日 04:33