1

こんにちは、Bash スクリプトで Sed を使用しようとしていますが、問題に直面しています。(どちらも初心者です)

$logflag の後に挿入しようとしてい<!-- Beginning git log -->ます。

#!/bin/bash
log=`git log -1 --stat --date=short --pretty=format:'[ %cd | %an | %s ]'`
sed "/<!-- Beginning git log -->/a $log" ~/opt/prime.dropbox/commit.md

したがって、commit.md では次のようになります。

some text
<!-- Beginning git log -->
git log output
some text

私はすべての可能な一重引用符/二重引用符のトリックを試しました..またはおそらくすべての間違ったものだけです。

これは、ほとんどの場合に発生するエラーです。

sed: -e expression #1, char 102: unknown command: `f'

awk を使用するともっと簡単な方法があるはずですが、私はとても近いです。^^

たぶん、Html chars が<!-- -->ブロックしているか何かですか?

どうも

4

3 に答える 3

0

!でエスケープする必要があります\

sed "/<\!-- Beginning git log -->/a $log" ~/opt/prime.dropbox/commit.md
于 2013-08-20T10:21:10.823 に答える
0

私のために働く:

$ cat in.txt
some text
<!-- Beginning git log -->
git log output
some text
$ echo $log
[ 2013-08-20 | sergio | git log without -p ] index.html | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) Yes it looks like.
$ sed "/<\!-- Beginning git log -->/a $log"  in.txt
some text
<!-- Beginning git log -->
[ 2013-08-20 | sergio | git log without -p ] index.html | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) Yes it looks like.
git log output
some text
于 2013-08-20T10:31:43.840 に答える