はい、sedコマンドでは改行を含む文字列を置換することが可能です。以下のような方法で実現できます。
“`bash
sed -e ‘s/123/123n456/g’ ファイル名
“`
上記のコマンドは、ファイル内のすべての「123」を「123」の後に改行と「456」を追加するように置換します。このコマンドでは、置換対象の文字列を「s/123/123n456/」として指定しています。`n`は改行を表すエスケープシーケンスです。
ただし、実際のsedの挙動は環境によって異なることがあるため、詳細な使用方法は`man sed`コマンドでマニュアルを参照することをお勧めします。また、バックスラッシュ()をエスケープする必要がある場合もあるため、ご注意ください。
なお、他の方法としては、一時ファイルを作成して、一度置換対象の文字列を削除してから、新たに置換対象の文字列と改行を追加する方法もあります。以下にそれぞれの手順を示します。
1. 一時ファイルを作成します。
“`bash
cp ファイル名 一時ファイル名
“`
2. 一時ファイル内の置換対象の文字列を削除します。
“`bash
sed -i ‘s/123//’ 一時ファイル名
“`
3. 一時ファイルに新たに置換対象の文字列と改行を追加します。
“`bash
echo ‘123’ >> 一時ファイル名
echo ‘456’ >> 一時ファイル名
“`
4. 元のファイルに一時ファイルの内容を上書きします。
“`bash
mv 一時ファイル名 ファイル名
“`
上記の手順で、置換対象の文字列と改行を追加することができます。ただし、一時ファイルを使用するため、元のファイルが変更されることになりますので、注意してください。