使用 Regex 提取下一个语义发布版本
Extract next semantic-release version using Regex
我有一些语义释放输出的日志。我想得到下一个语义版本。
这是一些日志
[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:
我想从日志中获取 1.1.1
我试过:
yarn semantic-release -d | grep 'Release note' | grep -Eo "(\d+)\.(\d+)\.(\d+)"
在本地机器上工作,但我想尝试不同的方法(因为 egrep -o
或 greo -Eo
似乎在 github-actions 中不起作用。它总是 returns 错误代码 0)
我要找的是
Release note for version 1.1.1:
捕获 1.1.1
如果找到 Release not for version
。
这是因为 grep -E
正在使用不支持 \d
的 extended regular expression。所以你有两个解决方案:
- 使用
grep -P
使用 Perl 正则表达式并使用 \d
- 使用
grep -E
但将正则表达式更改为 [[:digit:]]+\.[[:digit:]]+\.[[:digit:]]+
或 [0-9]+\.[0-9]+\.[0-9]+
我有一些语义释放输出的日志。我想得到下一个语义版本。
这是一些日志
[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:
我想从日志中获取 1.1.1
我试过:
yarn semantic-release -d | grep 'Release note' | grep -Eo "(\d+)\.(\d+)\.(\d+)"
在本地机器上工作,但我想尝试不同的方法(因为 egrep -o
或 greo -Eo
似乎在 github-actions 中不起作用。它总是 returns 错误代码 0)
我要找的是
Release note for version 1.1.1:
捕获 1.1.1
如果找到 Release not for version
。
这是因为 grep -E
正在使用不支持 \d
的 extended regular expression。所以你有两个解决方案:
- 使用
grep -P
使用 Perl 正则表达式并使用\d
- 使用
grep -E
但将正则表达式更改为[[:digit:]]+\.[[:digit:]]+\.[[:digit:]]+
或[0-9]+\.[0-9]+\.[0-9]+