sedコマンドの基本書式


    sedコマンドの使い方

    sedコマンドは標準入力やファイル入力に対して処理をする。処理内容の具体的コードを当サイトではsedスクリプト又は単にスクリプトと呼ぶことにする。

    標準入力に対して処理する場合

    他のコマンド | sed オプション --expression='sedスクリプト'

    通常は--expressionオプションは不要なので、以降省略。

    他のコマンド | sed オプション 'sedスクリプト'

    ファイル入力に対して処理する場合

    sed オプション 'sedスクリプト' ファイル1 ファイル2 …

    sedスクリプトを変数に入れて使う

    当サイトでは表記の都合上、下記のようにsedスクリプトをシェル変数scriptに入れたりする。特にスクリプトが複数行になる場合。

    script='# sedスクリプト1
    # sedスクリプト2'
    
    # 実行
    sed オプション "$script" ファイル

    また、入力もシェル変数inputに入れて下記の形式で例示したりする。下記全体をそのまま端末に貼り付け実行・動作確認できるし、見やすい。

    input='1行目
    2行目
    3行目'
    
    script='# sedスクリプト1
    # sedスクリプト2'
    
    echo "$input" | sed "$script"
    

    コメント

    sedスクリプトはコマンドやアドレスからなり、複数の処理を入れると長くなるので、適宜改行を入れることにする。空行は無視される。

    その際に、プログラミング言語のように何も処理しないコメントを残せる。#から行末までがコメント。

    script='
    # この行全体コメント。空行は無視。
    
    スクリプト # 途中からコメント'

    sedスクリプトをファイルに記述しておいて実行 --fileオプション

    sedスクリプトのコードをファイルに記述しておいて、--fileオプションでそれを指定することもできる。

    sed オプション --file='スクリプトファイル' ファイル