我在groovy脚本下运行,以从aws s3存储桶获取动态值。 下面的脚本运行良好,它将获取所有对象,如下面的输出所示。 当前输出为
test-bucket-name/test/folde1/1.war
test-bucket-name/test/folder2/2.war
test-bucket-name/test/folder3/3.txt
我只想在“ test-bucket-name”文件夹的输出中仅显示* .war文件,如下所示。
1.war
2.war
我的脚本:
def command = 'aws s3api list-objects-v2 --bucket=test-bucket-name --output=text'
def proc = command.execute()
proc.waitFor()
def output = proc.in.text
def exitcode= proc.exitValue()
def error = proc.err.text
if (error) {
println "Std Err: ${error}"
println "Process exit code: ${exitcode}"
return exitcode
}
return output.split()
请让我知道如何仅从test-bucket-name文件夹中提取/显示war文件。
答案 0 :(得分:1)
首先,您需要过滤以.war
结尾的条目。然后再次分割每个条目(使用/
)并选择最后一个元素:
def input = '''test-bucket-name/test/folde1/1.war
test-bucket-name/test/folder2/2.war
test-bucket-name/test/folder3/3.txt'''
input
.split()
.findAll { it.endsWith('.war') }
.collect { it.split('/') }
.collect { it[-1] }