sed セド

英語表記sed

日本語表記ストリーム編集

正式名称sed / stream editor

危険度注意

What does it mean?

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

Command Quest

sed を今日の道具にする

入力を一行ずつ処理し、置換、削除、抽出、整形を行います。ワン...

$ sed [オプション]... 'スクリプト' [ファイル]...
関連用語4
次のコマンド0
FAQ1
参照3

概要

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

基本構文

sed [オプション]... 'スクリプト' [ファイル]...

詳細解説

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

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

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

このコマンドを使う場面

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

まず安全に試す方法

1. printf 'port=8080n' > app.conf
2. sed 's/8080/9090/' app.conf
3. sed -n '1p' app.conf
4. sed '/^#/d' app.conf

3分ミッション

少しでも手を動かすと定着しやすくなります。終わった項目にチェックを入れてください。

  1. 小さな設定ファイルを用意し、sedで標準出力への置換結果を確認します。

資格試験との関連

  • LinuC レベル1
    範囲: 1.03.4 正規表現を使用したテキストファイルの検索
    根拠: official
    sedは、正規表現を使った検索や置換を学ぶ中核です。
  • LPIC-1
    範囲: 103.7 正規表現を使用したテキストファイルの検索
    根拠: official
    sedは、LPIC-1で正規表現による検索と加工を扱う中心的なコマンドです。
  • 共通基礎
    範囲: Linuxコマンド基礎
    根拠: editorial
    sedは、ファイル操作またはテキスト処理の基本を支えるため、試験横断の共通知識として価値があります。

オプション

  • -n
    自動出力を抑え、p命令などで明示した行だけを出します。
    sed -n '1,5p' file.txt
  • -E
    拡張正規表現を使います。
    sed -E 's/[0-9]+/NUM/' file.txt
  • -i
    入力ファイルを直接書き換えます。
    sed -i 's/8080/9090/' app.conf

実行結果サンプル

  • printf 'anbn' | sed 's/b/B/'
    a
    B

戻り値コード

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

使用例

  • sed 's/old/new/' file.txt
  • sed -n '1,10p' file.txt
  • sed '/^#/d' config.ini
  • sed -i 's/8080/9090/' app.conf

よくあるエラー

  • -iで元ファイルを壊してしまった
    原因: 結果確認前に直接書換えしました。
    対処: まず-iなしで結果を確認し、必要ならバックアップ付きで実行します。
  • 正規表現が期待通りに動かない
    原因: 基本正規表現と拡張正規表現を混同しています。
    対処: 必要に応じて-Eを使い、記法差を整理します。

導入・互換性情報

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

注意点 / セキュリティリスク

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

FAQ

  • Q. grepとの違いは何ですか。
    A. grepは抽出中心、sedは抽出に加えて置換や削除など編集も行えます。

関連用語

  • GNU
  • ソースコード
  • 標準入力
  • パイプ

参照リンク

関連記事