steps {
node('master') {
script {
def files = findFiles glob: "*/test/*.*"
files.sort()
echo "${files[i].name}"
}
}
}
我在测试目录中有文件,其中文件名具有模式test1.csv
,test2.csv
…test100.csv
,test101.csv
等
当我使用files.sort()
时,Jenkins先打印test100.csv
,test101.csv
,然后是test1.csv
。
如何排序和打印像test1
,test2
,test3
…test100
等。
请建议。
我建议您不要使用groovy,而是使用sh
。在这样的简单任务中滥用groovy被认为是一种不好的做法,除非您在其他步骤/操作中需要该列表。最后,您只想在标准输出中打印它,因此:
ls *.csv | sort -n -k 1.5
使用sort
,您可以指定-n, --numeric-sort
根据数值进行比较,并指定键定义-k, --key
使用键进行排序。1.5
的意思是:取第一个字段(整个单词,除非您使用-t
指定分隔符),并从第5个字符开始比较,该字符是test
之后的第一个数字。