使用Regex提取下一个语义发布版本

问题描述

我有一些语义释放输出的日志。我想获得下一个语义版本。

这是一些日志

Create

我想从日志中获取Delete

我尝试过: Create

可在本地计算机上运行,​​但我想尝试另一种方法(因为https://graph.microsoft.com/v1.0/me/messages?select=subject,receivedDateTime,conversationid,uniquebody [6:53:27 p.m.] [semantic-release] › ℹ The next release version is 1.1.1 [6:53:27 p.m.] [semantic-release] › ℹ Start step "generateNotes" of plugin "@semantic-release/release-notes-generator" [6:53:27 p.m.] [semantic-release] › ✔ Completed step "generateNotes" of plugin "@semantic-release/release-notes-generator" [6:53:27 p.m.] [semantic-release] › ⚠ Skip step "prepare" of plugin "@semantic-release/changelog" in dry-run mode [6:53:27 p.m.] [semantic-release] › ⚠ Skip 1.1.1 tag creation in dry-run mode [6:53:27 p.m.] [semantic-release] › ✔ Published release 1.1.1 on apk-add-version channel [6:53:27 p.m.] [semantic-release] › ℹ Release note for version 1.1.1: 在github-actions中似乎不起作用。它总是返回错误代码0)

我正在寻找的是 1.1.1

如果找到yarn semantic-release -d | grep 'Release note' | grep -Eo "(\d+)\.(\d+)\.(\d+)",则捕获egrep -o

解决方法

这是因为grep -Eextended regular expression一起使用,而{{3}}不支持\d。因此,您有两种解决方案:

  • 使用grep -P使用Perl正则表达式并使用\d
  • 使用grep -E,但将正则表达式更改为[[:digit:]]+\.[[:digit:]]+\.[[:digit:]]+[0-9]+\.[0-9]+\.[0-9]+