有没有办法用 groovy 重写这个带有 Stdout: true 等的 jenkins 变量?
def result = sh(returnStdout: true, script: "echo \"$changeString\" | grep -o 'DPDHLPA-[0-9][0-9]*' | sort | uniq").trim()
这个grep怎么能复制呢? echo 和 sort 对我来说是可以理解的,但是 grep 和 uniq 呢?
changeString 的输出示例:
[DPDHLPA-26488] Added data-reset-state attribute for smart grid and smart filter
答案 0 :(得分:0)
def changeString = """
[DPDHLPA-26488] ddd
[DPDHLPA-26488] aaa
[DPDHLPA-26488] bbb
[DPDHLPA-26488] aaa
[DPDHLPA-26489] ccc
[DPDHLPA-26488] ddd
"""
def result = changeString.readLines()
.collect{it=~/(DPDHLPA-[0-9]+)/}.findAll()
.collect{it[0][0]}.unique().sort().join('\n')
使用 List/Collection/Iterable 的方法:
http://docs.groovy-lang.org/latest/html/groovy-jdk/java/util/List.html