置き換えるためにsedにテキストを渡していますが、テキストに気に入らない文字が含まれているようです。
テキストのソースは次のようgit log graph
になります。
ID- desc author
ID- desc author
わかりました。unescaped newline inside substitute pattern
sedで接続する前にすべてをどのように避けますか?
Example:
COMMIT=$(git log my_branch...origin/master --pretty=format:'%h %an')
FINAL=$(cat msg.txt | sed -E "s/--PLACEHOLDER--/$COMMIT/)
答え1
単純なbashパラメータの置換を使用してこれを行うことができます。
msg=$(< msg.txt)
# or, for this demo
msg="This is the commit message.
--PLACEHOLDER--
That's it."
commit="id1 - message 1
id2 - message 2
id3 - message 3"
final="${msg//--PLACEHOLDER--/"$commit"}"
echo "$final"
This is the commit message.
id1 - message 1
id2 - message 2
id3 - message 3
That's it.