No.052テキスト処理

sed

セド・ストリーム編集

知識レベル 実践注意一般ユーザーで使える

入力を一行ずつ処理し、置換、削除、抽出、整形を行います。ワンライナーでの自動整形や一括置換に向きます。

答えよく使う形

  1. 一致箇所だけを置換します
  2. 自動出力を抑え、p命令などで明示した行だけを出します
  3. 拡張正規表現を使います

注意危険度は中程度です。

visitor@goodly: ~

$ printf 'anbn' | sed 's/b/B/'

a
B

$ sed 's/old/new/' file.txt

$ sed -n '1,10p' file.txt

覚える順番の中でLPIC-1・31 駅め / 106

どんなコマンド?

こんなときに

一括置換、不要行削除、一部分だけの表示、簡単な整形を非対話で行いたい時に使います。

sedは、入力を流しながら編集するコマンドです。最も有名なのはs/旧/新/の置換ですが、行削除、特定範囲の抽出、パターン一致時だけの処理など、多くの編集を非対話で実行できます。

grepが『探す』道具なら、sedは『探して書き換える』道具です。ログや設定の整形、一括置換、不要行の除去に非常に便利です。正規表現を使うため、検索と編集の両面で理解が深まります。

ただし、-iによる直接書換えは便利な反面、誤置換時の影響が大きいです。まずは標準出力へ結果を確認し、その後で直接編集へ進む流れが安全です。

書き方とオプション

組み立ててみるオプションを押すと、下の1行に足されます。もう一度押すと外れます。

$ sed

使用例と実行結果

行を押すとコピーできます。

a
B
一致箇所だけを置換します。

まず安全に試す

3分ミッション

手を動かすと覚えやすくなります。できたものに印を付けてください(この端末に残ります)。

0 / 1

つまずいたとき

-iで元ファイルを壊してしまった

原因結果確認前に直接書換えしました。

こうするまず-iなしで結果を確認し、必要ならバックアップ付きで実行します。

正規表現が期待通りに動かない

原因基本正規表現と拡張正規表現を混同しています。

こうする必要に応じて-Eを使い、記法差を整理します。

終わったときの数(戻り値)

$ echo $?

  • 0正常終了。処理に成功しました。
  • >0構文誤り、読取失敗、直接書換え失敗などで失敗しました。

気をつけることと入れ方

気をつけること

危険度は中程度です。特に-iは元ファイルを書き換えるため、正規表現や置換対象を誤ると被害が出ます。まずは-iなしで結果確認するのが基本です。

環境による違い

POSIX sedとGNU sedでは-Eや-iの細部が異なることがあります。移植性が必要なら、拡張に依存しすぎない記述を心掛けます。

確かめた環境2026-04-09 に確認

よくある質問

grepとの違いは何ですか。

grepは抽出中心、sedは抽出に加えて置換や削除など編集も行えます。

資格試験では

  • LinuC レベル1中心1.03.4 正規表現を使用したテキストファイルの検索sedは、正規表現を使った検索や置換を学ぶ中核です。
  • LPIC-1中心103.7 正規表現を使用したテキストファイルの検索sedは、LPIC-1で正規表現による検索と加工を扱う中心的なコマンドです。
  • 共通基礎大事Linuxコマンド基礎

sed を最後まで読みました。

Linux コマンド辞典に戻る100 / 144

Goodly のメニュー