jenkins - Groovy 中的字符串操作
问题描述
我正在编写一个 groovy 脚本,它将返回 AWS ECS 服务中的任务定义列表,这是相同的代码片段
def p = 'aws ecs list-task-definitions --family-prefix test'.execute() | 'jq .taskDefinitionArns[]'.execute()
p.waitFor()
print p.text
输出是
"arn:aws:ecs:us-west-2:496712345678:task-definition/test:2"
"arn:aws:ecs:us-west-2:496712345678:task-definition/test:3"
现在我只想捕获结果的最后一部分,即test:2,test:3等等,没有双引号
我如何使用 Groovy 语言来做到这一点,因为我必须在Jenkins 的主动选择反应参数插件中使用它
解决方案
假设:
def text = "arn:aws:ecs:us-west-2:496712345678:task-definition/test:2" + "\n" + "arn:aws:ecs:us-west-2:496712345678:task-definition/test:3"
尝试 :
text.split("\n").collect {c -> c.split("/").last()}
这将打印一个列表[test:2, test:3]
如果您希望它在一行中而不是在列表中,请使用:
text.split("\n").collect {c -> c.split("/").last()}.join(",")
这打印:test:2,test:3
更新
由于OP的评论,答案毕竟应该是这样的:
def p = 'aws ecs list-task-definitions --family-prefix test'.execute() | 'jq .taskDefinitionArns[]'.execute()
p.waitFor()
def text = p.text
println text.split("\n").collect {c -> c.split("/").last()}
推荐阅读
- c# - IFormFile 的数据注释,因此它只允许具有 .png、.jpg 或 .jpeg 扩展名的文件
- java - 匕首如何能够从组件中未包含的另一个模块注入一个类?
- swift - 在 forEach 循环中设置 2 个对象之间的恒定宽度
- javascript - 如何将此函数转换为 ES6(箭头语法)IIFE 函数?
- html - HTML CSS background-image 属性根本不起作用
- azure - Azure Github 应用部署错误:发布配置文件不包含 kudu URL
- javascript - 适用于分块的浏览器客户端虚拟文件系统
- excel - Excel - 发生顺序/运行总计公式
- python - 在它们匹配的列上连接两个数据框
- .net - 在事件处理程序中处理异步操作的正确模式是什么?