回答:
Sedは一度に1行しか動作しないので、これはかなりひどいです。これを行うために私がこれまで見た唯一のまともなテクニックはこれですsedのホールドバッファーにファイル全体を保存し、一度にすべてを操作する必要があります:
sed -n '1h;1!H;${g;s/search/replace/;p;}'
可能であれば、perlを使用してこれを実行する方がはるかに簡単です。
perl -0pe 's/search/replace/'
search
\n
改行を表すsを含めることができます
sed
マルチライナーの場合は+1 。
-0
はレコード区切り文字をnullに設定するため、ファイル全体が1行ずつではなく一度に読み込まれます。-p
置換後の結果を出力します。-e
それを実行する式として次の引数を取ることがあり、s/search/replace/
その表現である