rコマンドは、現在のパターンスペースの後ろに、ファイルや標準入力の内容を挿入する。挿入したいファイルの名前や標準入力を挿入したいことの指定はsedスクリプトの中で行う(sedコマンド引数ではなく)。
ファイル1行目 ファイル2行目
input='1行目
2行目
3行目'
# 標準入力1行目の後でFILEを挿入
echo "$input" | sed '1 r FILE'
出力はこうなる。
1行目 ファイル1行目 ファイル2行目 2行目 3行目
ファイルが存在しない場合は何も挿入されず、エラーにもならない。
上記とは逆に、ファイル入力の途中に標準入力を挿入する場合、ファイルの代わりに/dev/stdin
を指定する。
ファイル1行目 ファイル2行目
input='1行目
2行目
3行目'
# ファイル1行目の後で標準入力を挿入
echo "$input" | sed '1 r /dev/stdin' FILE
出力はこうなる。
ファイル1行目 1行目 2行目 3行目 ファイル2行目