こういうconfファイルがあったとして、
cat << 'EOF' > tmp.txt aaa bbb ccc DB = [ BACKEND = "sqlite" ] ddd EOF
tmp変数にこういう文字列をいれて、
tmp=$(cat << 'EOF' #DB = [ BACKEND = "sqlite" ] DB = [ backend = "mysql", server = "localhost", port = 0, user = "userrr", passwd = "passwddd", db_name = "dbbb" ] EOF )
^DBのところに tmp変数のような 複数行文字列
を追記したいです。
(これはsedのsが終わらないみたいで、うまくいきません)
cat tmp.txt | sed -r "s/^DB =.*/${tmp}/" #DB = [ BACKEND = "sqlite" ] DB = [ backend = "mysql", server = "localhost", port = 0, user = "userrr", passwd = "passwddd", db_name = "dbbb" ]
・一度変数に入れずに追記したいですし、
・ワンライナー?でこんな風にできたらいいと思うのですが、
何かいい方法ないでしょうか。
cat << 'EOF' | sed i.bak -r "s/^DB =.*/$(cat)/" tmp.txt aaa bbb ccc #DB = [ BACKEND = "sqlite" ] DB = [ backend = "mysql", server = "localhost", port = 0, user = "userrr", passwd = "passwddd", db_name = "dbbb" ] ddd EOF
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/10/21 09:23