使用 bash 读取文件直到更改日志文件中的正则表达式

Read file until regex in changelog file using bash

我想获取文件中的内容,直到在内容中找到正则表达式。我需要这个来报告我最后的更新日志

示例:

## <small>0.27.3 (2019-03-18)</small>

* Fix integration tests
* Change log message


## <small>0.27.2 (2019-03-18)</small>

* Change find to filter
* Fix bug in typo
* Format message in request

我想要一个正则表达式 return 只有我最新版本的内容。示例:

## <small>0.27.3 (2019-03-18)</small>

* Fix integration tests
* Change log message

如何使用 sed、grep 或 awk 来实现?

谢谢你

编辑:

我能做到:

CHANGELOG_MESSAGE=$(head -n 1 CHANGELOG.md)$(head -n 20 CHANGELOG.md | tail -n 19 | sed '/##/q' | awk '!/##/')

我认为这个解决方案有点复杂,但有效

试试这个:

sed '1p;1,/^##/!d;/##/d' CHANGELOG.md

说明

1p             # print first line
;           
1,/^##/!d      # delete everything after second ##-line
;               
/##/d          # delete all lines start with ##

输出

## <small>0.27.3 (2019-03-18)</small>

* Fix integration tests
* Change log message