sedでファイルに行を挿入する
sedで1行追加する場合、普通であれば
1 |
sed -i-e "3i fugafuga" tmp.txt |
とかすればいいんだろうけど、これはGNU系であってBSD系だと「command i expects \ followed by text」と怒られてうまくいきません(さくらサーバとか)。
なのでその時は次のようにすればうまく行きます。
1 2 3 |
LF=$(printf '\\\012_') LF=${LF%_} sed -i-e "3s/^/hoge${LF}/" tmp.txt |
実行結果:
1 2 3 4 5 6 |
1 2 hoge 3 4 5 |
変数LFには改行コードが入っています
コメントを残す