在 GitLab CI 腳本中,我想
- 洗掉除數字和點 (.) 以外的任何字符,然后
- 如果文本中存在點,則洗掉第二個點 [Ex 5.6.7.8 -> 5.6] 之后的所有文本。
因此,為此我嘗試使用 sed ,但它在 GitLab 腳本中不起作用(在本地使用 bash shell)
export BRANCH_NAME={$CI_COMMIT_REF_NAME} | sed 's/\.[^.]*$//' | sed 's/[^0-9.]//g'
知道這里缺少什么嗎?
如果 sed 在這里不起作用,那么還有其他選擇可以達到同樣的效果嗎?
編輯:根據@WiktorStribi?ew - echo "$CI_COMMIT_REF_NAME" | sed 's/.[^.] $//' | sed 's/[^0-9.]//g' - 出口 BRANCH_NAME=${CI_COMMIT_REF_NAME} | sed 's/.[^.] $//' | sed 's/[^0-9.]//g'
回聲作業,但出口不是
uj5u.com熱心網友回復:
使用 sed
$ export BRANCH_NAME=$(echo "$CI_COMMIT_REF_NAME" |sed 's/[A-Za-z]*//g;s/\([0-9]*\.[0-9]*\)\.[^ ]*/\1/g')
uj5u.com熱心網友回復:
首先,洗掉所有文本,包括您需要的第二個點
sed 's/\([^.]*\.[^.]*\).*/\1/'
sed 's/\.[^.]*$//'sed 命令洗掉最后一個點和它之后的任何文本。
接下來,你一定是打錯了,你實際上是想寫${CI_COMMIT_REF_NAME}而不是{$CI_COMMIT_REF_NAME}。
所以,你可能會更好
export BRANCH_NAME=$(echo "$CI_COMMIT_REF_NAME" | sed 's/\([^.]*\.[^.]*\).*/\1/' | sed 's/[^0-9.]//g')
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/410603.html
標籤:
上一篇:在PowershellforLinux中讀取和寫入Postgres資料庫
下一篇:如何遍歷檔案以復制到s3存盤桶中
