gpt4 book ai didi

linux - 如何使用 sed 在命令行中提取单个值?

转载 作者:太空宇宙 更新时间:2023-11-04 10:20:53 25 4
gpt4 key购买 nike

我正在尝试从我的 Travis-CI 配置中的环境变量中提取信息,因此我正在寻找一个基于我的正则表达式执行此操作的单行 linux 命令。这是我正在尝试的:

  - MAJOR_VERSION=`sed -i 's/[v?]((([\d]+)\.[\d]+)\.[\d]+)/$1/g' <<< ${TRAVIS_TAG}`
- MINOR_VERSION=`sed -i 's/[v?]((([\d]+)\.[\d]+)\.[\d]+)/$1.$2/g' <<< ${TRAVIS_TAG}`
- PATCH_VERSION=`sed -i 's/[v?]((([\d]+)\.[\d]+)\.[\d]+)/$1.$2.$./g' <<< ${TRAVIS_TAG}`

看起来 sed 需要一个或多个文件,因为我收到错误 sed: no input files,不是字符串。我怎样才能让它期待一个字符串?

我的目标是采用语义版本标记(例如 - v12.34.5612.34.56 并提取版本号。

最佳答案

根本不清楚您为什么要使用 sed。如果 TRAVIS_TAG 仅包含“xx.xx.xx”形式的字符串,那么您只需读取它:

IFS=. read MAJOR_VERSION MINOR_VERSION PATCH_VERSION <<< "$TRAVIS_TAG"

如果您担心可能要丢弃的前导 v:

IFS=. read MAJOR_VERSION MINOR_VERSION PATCH_VERSION <<< "${TRAVIS_TAG#v}"

关于linux - 如何使用 sed 在命令行中提取单个值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43982839/

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