rコマンド

rコマンドは、現在のパターンスペースの後ろに、ファイルや標準入力の内容を挿入する。挿入したいファイルの名前や標準入力を挿入したいことの指定はsedスクリプトの中で行う(sedコマンド引数ではなく)。


    入力の途中にファイル挿入

    FILE

    ファイル1行目
    ファイル2行目
    input='1行目
    2行目
    3行目'
    
    # 標準入力1行目の後でFILEを挿入
    echo "$input" | sed '1 r FILE'
    

    出力はこうなる。

    1行目
    ファイル1行目
    ファイル2行目
    2行目
    3行目
    

    ファイルが存在しない場合は何も挿入されず、エラーにもならない。


    ファイル入力の途中に標準入力を挿入

    上記とは逆に、ファイル入力の途中に標準入力を挿入する場合、ファイルの代わりに/dev/stdinを指定する。

    FILE

    ファイル1行目
    ファイル2行目
    input='1行目
    2行目
    3行目'
    
    # ファイル1行目の後で標準入力を挿入
    echo "$input" | sed '1 r /dev/stdin' FILE
    

    出力はこうなる。

    ファイル1行目
    1行目
    2行目
    3行目
    ファイル2行目