[英]How can i use sed -i command to replace the occurance of character starting from particular line in a file till another line?
[英]How can I use sed to extract a single value in command line?
我試圖從Travis-CI配置中的環境變量中提取信息,所以我正在尋找一個1行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
錯誤sed: no input files
,不是字符串。 我如何獲得期望的字符串?
我的目標是獲取語義版本標簽(例如v12.34.56
或12.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}"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.