如何在Jenkins Pipeline中获取YAML文件的行号?
在Jenkins Pipeline中获取YAML文件指定内容的行号
readYaml步骤会把YAML解析成结构化对象,原始文件的行号信息会丢失,所以要实现和本地Groovy相同的功能,需要直接读取文件的原始文本并逐行处理。以下是可行的Pipeline代码:
node { def yamlContent = readFile file: 'release.yml' yamlContent.readLines().eachWithIndex { String line, int lineIndex -> // 替换为你要匹配的目标内容 if (line.contains('key1')) { // 行号从1开始计数,所以给索引加1 println "找到匹配行: '$line',行号: ${lineIndex + 1}" } } }
关键说明:
- 使用
readFile读取文件原始文本,保留每行的原始内容和顺序 readLines()将文本拆分为行列表,方便遍历eachWithIndex同时获取行内容和索引,索引从0开始,若需要常规的1起始行号,记得加1- 修改
line.contains('key1')中的key1为你实际要查找的内容即可
内容的提问来源于stack exchange,提问作者bharathi
相关产品推荐
相关产品推荐

