git log を使って特定範囲のコミットの一覧を一行一コミットで作成しようと思っています。

- subject: body @hash
- subject: body @hash

git log--format= オプションを使う際、コミットのsubject、body、ハッシュはそれぞれ %s %b %h で出力できることがわかりました。また、bodyは長くなることが考えられるので要約したいですが、これは <(20,mtrunc) で概ね実現できるようです。

ところが、それを使って実際に出力すると、どうやら %b の後に改行が出力されるようなのです。

$ git log --format="- %s: %b @%h"
- Add something feature: Lorem ipsum.
 @573c2ea
- Add something feature: Lorem ipsum dolor sit amet, consectetur adipisicing elit,
sed do eiusmod tempor incididunt
 @785c29c
- Commit without body:  @119c6d7

$ git log --format="- %s: %<(20,mtrunc)%b @%h"
- Add something feature: Lorem ipsum.
          @573c2ea
- Add something feature: Lorem ips..incididunt
 @785c29c
- Commit without body:  @119c6d7

上の例ではbodyとhashの間に改行が入っていますが、本来は同じ行に出力したいのです。

%b の後ろに何も置かないようにすれば空行になるので後から取り除くのも容易ではありますが、この改行を git log 側で抑制する方法はないものでしょうか?