gpt4 book ai didi

regex - 提取字符串的版本号

转载 作者:行者123 更新时间:2023-12-04 08:48:04 25 4
gpt4 key购买 nike

我正在尝试从如下所示的字符串中获取版本号:

[7:38:06 PM] [semantic-release] › ℹ  Running semantic-release version 17.1.2
[7:38:09 PM] [semantic-release] › ✔ Published release 1.0.7 on default channel
由于我需要在 BusyBox 中执行此操作,因此无法使用 grep-P选项:
grep -oP 'Published release \K.*? '
所以我尝试使用 sed ,但我的尝试没有返回任何内容:
sed -n 's/.*Published release (.*) .*/\1/p'
此命令有什么问题,或者是否有“ native ”解决方案来获取 1.0.7 ?

最佳答案

您可以使用 sed像这样:

sed -n 's/.*Published release \([^ ]*\).*/\1/p' file
online demo :
s='[7:38:06 PM] [semantic-release] › ℹ  Running semantic-release version 17.1.2
[7:38:09 PM] [semantic-release] › ✔ Published release 1.0.7 on default channel'
sed -n 's/.*Published release \([^ ]*\).*/\1/p' <<< "$s"
# => 1.0.7
详情
  • -n - 抑制默认行输出
  • .*Published release \([^ ]*\).* - 火柴
  • .* - 任何 0 个或多个字符
  • Published release - 文字
  • \([^ ]*\) - 第 1 组:除空格之外的任何零个或多个字符
  • .* - 任何 0 个或多个字符

  • \1 - 替换为第 1 组值
  • p - 打印替换结果
  • 关于regex - 提取字符串的版本号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64215365/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com