知りたいこと
改行を含む文字列の改行コード(?)を\nという文字列に置換する
処理をどう書けばいいか知りたい
最終的にしたいこと
aaa\nbbb\nccc という文字列が
aaa\nUndertale\nMegalovania\nccc という文字列になる
sed を書きたい
コマンド実行結果
言葉で伝えるのが難しいので、下記コマンドの実行結果を見てください
# 改行を含む文字列(bbbがターゲット) echo -e "aaa\nbbb\nccc" aaa bbb ccc # 改行を含む文字列を変数に代入 read -rd '' text << EOF Undertale Megalovania EOF echo -e "$text" Undertale Megalovania # 変数を使わずにsed echo -e "aaa\nbbb\nccc" | sed "s/bbb/Undertale\nMegalovania/" aaa Undertale Megalovania ccc # 変数を使ってsedしたらエラーになる echo -e "aaa\nbbb\nccc" | sed "s/bbb/$text/g" sed: -e expression #1, char 15: unterminated `s' command # 変数を使ってsedするにはどうしたらいいか? echo -e "aaa\nbbb\nccc" | sed "s/bbb/【$text を 何かしらした処理】/g" aaa Undertale Megalovania ccc
(実はほんとにしたいこと)
# この1行を # ========================= DB = [ BACKEND = "sqlite", # この複数行に置き換えたい # ========================= DB = [ backend = "mysql", server = "seeeeeeeever", port = 0, user = "userrrrrrrrrrrr", passwd = "passwooooooood", db_name = "dbnaaaaaaaame" ] EOF # ========================= # 完成イメージ # sed -i "/^DB = /s/.*BACKEND.*sqlite.*/【$text を 何かしらした処理】/" /etc/one/oned.conf
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/10/30 17:06