カテゴリ: Linuxコマンド集 更新日: 2026/03/20

sed -iオプションの使い方を完全ガイド!初心者でもわかるLinuxのインプレース編集

sed -iオプション|ファイルを直接編集(インプレース編集)する方法
sed -iオプション|ファイルを直接編集(インプレース編集)する方法

先生と生徒の会話形式で理解しよう

生徒

「Linuxでテキストファイルの中身を一気に書き換えたいんですが、毎回エディタを開くのは大変です…」

先生

「それならsedコマンドの-iオプションが便利ですよ。ファイルを直接編集できます。」

生徒

「直接編集って、上書きされるってことですか?失敗したら怖くないですか?」

先生

「大丈夫。仕組みと注意点を順番に説明します。ゆっくり理解していきましょう。」

1. sedコマンドとは?

1. sedコマンドとは?
1. sedコマンドとは?

sedは、Linuxでテキストを加工・変換するためのコマンドです。ファイルの中身を検索して置き換えたり、特定の行だけを削除したりできます。

難しそうに見えますが、イメージとしては「文章を自動で直してくれるロボット」です。人が一行ずつ見なくても、ルールを決めれば一気に処理してくれます。

特に設定ファイルやログファイルなど、文字がたくさんあるファイルを扱うときに活躍します。

2. -iオプション(インプレース編集)とは?

2. -iオプション(インプレース編集)とは?
2. -iオプション(インプレース編集)とは?

-iオプションは、ファイルを直接書き換えるための指定です。これを「インプレース編集」と呼びます。

通常のsedは、画面に結果を表示するだけで、元のファイルは変わりません。しかし-iを付けると、ファイル自体が更新されます。

例えるなら、コピー用紙にメモを書くのではなく、ノートの本文を書き換えるイメージです。

3. 基本的な使い方(文字を置き換える)

3. 基本的な使い方(文字を置き換える)
3. 基本的な使い方(文字を置き換える)

一番よく使われるのが、文字列の置き換えです。基本の形は次のとおりです。


sed -i 's/古い文字/新しい文字/' sample.txt

これは、sample.txtの中にある「古い文字」を「新しい文字」に書き換えます。

sは「置き換え」を意味します。スラッシュで区切って「何を」「何に」変えるかを指定しています。

4. 実際の例で動きを確認しよう

4. 実際の例で動きを確認しよう
4. 実際の例で動きを確認しよう

次のようなファイルがあるとします。


cat hello.txt
Hello Linux
Hello World

この中の「Hello」を「Hi」に変えてみます。


sed -i 's/Hello/Hi/' hello.txt
cat hello.txt
Hi Linux
Hi World

コマンドを実行したあと、ファイルの中身が直接変わっていることがわかります。

5. バックアップを取りながら編集する方法

5. バックアップを取りながら編集する方法
5. バックアップを取りながら編集する方法

直接編集が不安な場合は、バックアップを作成できます。


sed -i.bak 's/Linux/UNIX/' hello.txt

この場合、元の内容はhello.txt.bakとして保存されます。

失敗しても戻せるので、初心者の方はこの方法がおすすめです。

6. 特定の行だけを編集する

6. 特定の行だけを編集する
6. 特定の行だけを編集する

sedでは、行番号を指定して処理できます。


sed -i '2s/World/Linux/' hello.txt

これは「2行目だけ」を対象にして置き換えを行います。

行番号を指定することで、必要な部分だけ安全に編集できます。

7. 複数の置き換えを一度に行う

7. 複数の置き換えを一度に行う
7. 複数の置き換えを一度に行う

一つのファイルで何か所も修正したい場合もあります。


sed -i -e 's/Hi/Hello/' -e 's/Linux/GNU\/Linux/' hello.txt

-eを使うと、複数のルールを順番に適用できます。

設定ファイルの一括修正などでよく使われます。

8. よくある注意点と失敗しやすいポイント

8. よくある注意点と失敗しやすいポイント
8. よくある注意点と失敗しやすいポイント

-iはとても便利ですが、元に戻せない操作になりがちです。

  • 必ずテスト用ファイルで試す
  • 最初はバックアップ付きで使う
  • 大事なファイルはコピーを取る

これらを意識するだけで、安心して使えるようになります。

9. sed -iと似たコマンドとの違い

9. sed -iと似たコマンドとの違い
9. sed -iと似たコマンドとの違い

sed -iは「自動編集向け」です。一方、vinanoは人が画面を見ながら編集します。

少しだけ直すならエディタ、たくさんのファイルを一気に直すならsed -iという使い分けがおすすめです。

関連記事:
カテゴリの一覧へ
新着記事
New1
テキスト・データ処理
sed -iオプションの使い方を完全ガイド!初心者でもわかるLinuxのインプレース編集
New2
ファイル・ディレクトリ操作
mv -nオプションの使い方|既存ファイルを上書きしない安全なファイル移動
New3
ファイル・ディレクトリ操作
mv -iオプションの使い方|上書き前に確認する安全なファイル移動方法
New4
Linuxコマンドの基本
Linuxコマンドとは?基本の考え方とシェルとの関係を初心者向けに徹底解説
人気記事
No.1
Java&Spring記事人気No1
テキスト・データ処理
catコマンドとは?Linuxでファイル内容を表示・連結する基本
No.2
Java&Spring記事人気No2
ファイル・ディレクトリ操作
findコマンドの使い方を完全ガイド!初心者でもわかるLinuxのファイル検索の基本
No.3
Java&Spring記事人気No3
テキスト・データ処理
grepコマンドとは?Linuxで文字列を検索する基本をやさしく解説!
No.4
Java&Spring記事人気No4
ファイル・ディレクトリ操作
cp -nオプションの使い方|既存ファイルを上書きしないコピー方法を初心者向けに解説!