使用bash读取文件,直到changelog文件中的正则表达式

时间:2019-04-05 14:26:00

标签: regex shell changelog

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

示例:

## <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

我希望正则表达式返回所有最新版本的内容。示例:

## <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 '!/##/')

我认为该解决方案有些复杂,但是可以解决

1 个答案:

答案 0 :(得分:1)

尝试一下:

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