No.052テキスト処理
sed
セド・ストリーム編集
入力を一行ずつ処理し、置換、削除、抽出、整形を行います。ワンライナーでの自動整形や一括置換に向きます。
答えよく使う形
注意危険度は中程度です。
$ printf 'anbn' | sed 's/b/B/'
a B
$ sed 's/old/new/' file.txt
$ sed -n '1,10p' file.txt
練習用の部屋です。何を打っても本物は変わりません。本物の Linux で続ける →
覚える順番の中で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