gpt4 book ai didi

linux - 使用 shell 脚本提取部分字符串

转载 作者:太空宇宙 更新时间:2023-11-04 05:39:40 26 4
gpt4 key购买 nike

字符串:

"v1.0.20170728180812 latest ef1fc15"
"latest ef1fc15 v1.0.20170728180812-test"
"ef1fc15 v1.0.20170722150727 latest"
<小时/>

预期字符串结果:

"v1.0.20170728180812"
"v1.0.20170728180812-test"
"v1.0.20170722150727"

代码:

string='latest ef1fc15 v1.0.20170728180812-test'
replace=$(echo $string | sed 's/v.*$//g')
echo $string | sed -e 's/$(echo $replace)//g'

谢谢大家! ;)

此脚本用于获取 aws ecr 的有效版本,并仅使用 --apply 将其部署到 kubernetes(避免使用“最新”时进行缓存)。

完整代码:

ecrVersions=$(aws ecr describe-images --repository-name <ECR_REPO_NAME> --image-ids imageTag=latest --output text)
appVersion=$(echo $ecrVersions | awk '{for (i=1;i<=NF;++i) {if($i~/^[v]/){print $i}}}')
echo $appVersion

最佳答案

使用awk :

 awk '{for (i=1;i<=NF;++i) {if($i~/^[v]/){print $i}}}' yourfile.txt

这是:

  1. 逐条记录地迭代文件记录(因为 awk 就是这样做的)
  2. 迭代由默认值分隔的每个字段:for (i=1;i<=NF;++i)
  3. 测试该字段是否以“v”开头:if($i~/^[v]/)
  4. 如果是,则打印字段值 print $i

我确信 sed 也可以快速解决这个问题。

关于linux - 使用 shell 脚本提取部分字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45382242/

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