Чтение файла до регулярного выражения в файле изменений с помощью bash - PullRequest
0 голосов
/ 05 апреля 2019

Я хочу получать контент в файл, пока не найду регулярное выражение в контенте. Мне нужно это, чтобы сообщить о моем последнем журнале изменений

Пример:

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

Спасибо за это

Edit:

Я могу это сделать:

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

Я думаю, что это решение несколько сложное, но работает

1 Ответ

1 голос
/ 06 апреля 2019

попробуйте это:

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

Объяснение * * 1004

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