如何在Helm中为.AsConfig的结果拼接字符串?
在Helm中为每个加载的JSON文件末尾添加"FINISHED!"
原来的.AsConfig方法会直接将匹配到的所有文件内容合并输出,无法单独为每个文件追加内容。要实现给每个文件末尾添加"FINISHED!",需要遍历每个匹配到的文件,单独处理每个文件的内容:
{{- range $file := .Files.Glob "files/my-files/*.json" }} {{- $file.Content | nindent 2 }} FINISHED! {{- end }}
代码说明:
- 用
range替代with,遍历Glob返回的每个文件对象(存入$file变量) $file.Content直接获取单个文件的原始内容nindent 2保证内容和原代码的indent 2效果一致,自动在内容前添加2个空格并换行- 在每个文件内容后直接追加
FINISHED!,会继承缩进格式
如果需要让"FINISHED!"和文件内容末尾在同一行(避免额外换行),可以调整写法:
{{- range $file := .Files.Glob "files/my-files/*.json" }} {{ $file.Content | indent 2 }}FINISHED! {{- end }}
注意事项:
- 如果JSON文件本身末尾没有换行,追加的"FINISHED!"会和文件最后一行内容连在一起,可根据需求手动添加换行符(比如
{{ $file.Content }}后加\n) - 该方式会完整保留每个文件的原始结构,仅在每个文件的最后位置追加指定字符串
内容的提问来源于stack exchange,提问作者gstackoverflow
相关产品推荐
相关产品推荐

