sed -eオプションの使い方を完全ガイド!初心者でもわかるLinuxテキスト処理の基本
生徒
「Linuxで文字をまとめて置き換えたいときって、どうすればいいんですか?」
先生
「そんなときはsedコマンドを使います。特に-eオプションを使うと、命令を直接書いて実行できますよ。」
生徒
「命令を直接?それって難しくないですか?」
先生
「大丈夫です。メモ帳の文章を赤ペンで直す感覚で考えると、とてもシンプルですよ。」
1. sedコマンドとは?
sedはLinuxで使えるテキスト処理専用のコマンドです。文章の中の文字を置き換えたり、不要な行を消したりするときに使います。
Windowsでいうと「検索して置換」に近い存在です。ただし、sedは黒い画面(ターミナル)で文字だけを使って操作します。その代わり、大量のデータを一瞬で処理できるのが特徴です。
2. -eオプションの役割とは?
-eオプションは、sedに対して実行したい処理内容(スクリプト)を直接指定するためのオプションです。
通常、sedは「何をどう変えるか」という指示が必要ですが、-eを使うことで、その指示をコマンドの中にそのまま書けます。
難しく考えず、「sedにやってほしい作業内容を書く場所」と覚えておくと理解しやすいです。
3. 最も基本的なsed -eの使い方
まずは一番よく使われる「文字の置き換え」を見てみましょう。ここではsample.txtというファイルの中の文字を変更します。
sed -e 's/apple/orange/' sample.txt
I like orange.
sは「置き換え」を意味します。appleをorangeに変える、という命令です。
元のファイルは変更されず、画面に変換後の結果だけが表示される点も初心者には安心ポイントです。
4. -eオプションで複数の処理を書く方法
-eは複数回指定できるのが大きな特徴です。つまり、一度に何個も修正指示を出せます。
sed -e 's/apple/orange/' -e 's/banana/grape/' fruits.txt
orange grape
これは「appleをorangeに変えて、さらにbananaをgrapeに変える」という意味です。
ノートに赤ペンで何か所も直しを入れる感覚と同じだと考えるとイメージしやすいです。
5. 行を削除するsed -eの例
-eでは置き換えだけでなく、行の削除もできます。次は「2行目を削除する」例です。
sed -e '2d' memo.txt
1行目の内容
3行目の内容
dは「削除」を意味します。数字は行番号です。
「何行目を消したいか」を数字で指定できるので、文章の整理にもよく使われます。
6. 正規表現と-eオプションの関係
正規表現とは、「あいまいな文字のルール」を表す書き方です。難しそうに聞こえますが、簡単な例だけ覚えれば大丈夫です。
sed -e 's/[0-9]/X/g' data.txt
ID: XXX
[0-9]は「0から9までの数字すべて」を意味します。gは「行の中すべて」を対象にする指定です。
数字をまとめて隠したいときなどに便利です。
7. sed -eと-eなしの違い
実は、-eは省略できる場合もあります。
sed 's/cat/dog/' animal.txt
dog
このように1つの処理だけなら省略できます。ただし、複数の処理を書く場合は-eが必須です。
初心者のうちは「sedを使うときは-eを書く」と覚えておくと混乱しません。
8. sed -eが活躍する場面
sed -eは、ログファイルの整理、CSVデータの修正、大量の設定ファイルの文字変更など、人の手では大変な作業を一瞬で終わらせる力があります。
最初は難しく見えますが、基本の形を覚えれば「検索して置換」の延長として使えます。
Linux初心者でも、-eを使えるようになると作業効率が大きく上がります。