Распечатать / извлечь changelog.md конкретные разделы - PullRequest
0 голосов
/ 25 июня 2019

Мне нужно извлечь / напечатать определенные разделы, используя скрипт оболочки для следующего файла журнала изменений в уценке:

    # Changelog
    All notable changes to this project will be documented in this file.

    The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
    and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

    ## [Unreleased]

    ## [4.0.75 - 507] - 2019-06-24

    ### Fixed
    - Changelog text

    ## [4.0.75 - 506] - 2019-06-21

    ### Fixed
    - Changelog text

    ## [4.0.75 - 505] - 2019-06-17

    ### Fixed
    - Changelog text
    - Changelog text
    - Changelog text

    ## [4.0.75 - 504] - 2019-06-11

    ### Added
    - Changelog text

    ## [4.0.74 - 503] - 2019-05-29

    ### Added
    - Changelog text
    - Changelog text

    ## [4.0.73 - 502] - 2019-05-22

Примеры того, чего я хотел бы достичь:

Секция ввода 4.0.75 - 507 Желаемый вывод:

    ## [4.0.75 - 507] - 2019-06-24

    ### Fixed
    - Changelog text

Секция ввода 4.0.75 Желаемый вывод:

    ## [4.0.75 - 507] - 2019-06-24

    ### Fixed
    - Changelog text

    ## [4.0.75 - 506] - 2019-06-21

    ### Fixed
    - Changelog text

    ## [4.0.75 - 505] - 2019-06-17

    ### Fixed
    - Changelog text
    - Changelog text
    - Changelog text

    ## [4.0.75 - 504] - 2019-06-11

    ### Added
    - Changelog text

Что было бы лучшим решением при использовании сценария оболочки? Я пытался awk безуспешно.

Спасибо за вашу помощь

1 Ответ

1 голос
/ 25 июня 2019

Предполагая, что ваши пустые строки действительно пустые (например, нет пробелов), вы можете сделать:

awk 's{ print ""; print}; $0~v {print; s=1; next}; s=0' RS= v=4.0.74 input
...