yamlpath 相关工具集
地址: github.com/wwkimball/yamlpath
记录一下,yaml-paths 在windows中的用法和技巧。
问题和解决方法:
由于windows cmd和linux之间差异性的特殊问题,导致linux中能正常使用,但在cmd中就会遇到问题,主要是由于对特殊字符定义不同而引发的。
cmd中 ^为特殊字符,因此,如果要输入^字面含义,作为输入参数,必须double一下,这点和linux terminal是完全不同的表达方式(linux中使用`\`字符)。
比如, 要匹配以m字母开头的yaml关键字段,需要double^, 以便escape cmd的转义。
-
yaml-paths --expand --keyname -s ^^m test.yaml
输出结果为:
-
test.yaml/0: machine
-
test.yaml/0: max_runtime
另外,还有比较混淆的%,在这里确能正常表达
-
yaml-paths --expand --keyname -s %in test.yaml
输出结果为:
点击(此处)折叠或打开
-
test.yaml/0: machine
-
test.yaml/0: input[0].destination
-
test.yaml/0: input[0].source
-
test.yaml/0: input[1].destination
-
test.yaml/0: input[1].source
yaml-paths 同时还提供了一种更通用的方式,=~,使用正则表达式进行字段路径的自由匹配。
但是需要将正则表达模板放在特定分界符中,一般为 `/`, 这个和vim中输入的search方式有点类似。
例子:
另外,如果需要遍历整个yaml文件,输出所有yaml路径表达,可以用如下方式:
点击(此处)折叠或打开
-
yaml-paths --expand --keyname -s =~/.*/ test.yaml
输出结果为:
-
test.yaml/0: machine
-
test.yaml/0: env
-
test.yaml/0: input[0].destination
-
test.yaml/0: input[0].source
-
test.yaml/0: input[1].destination
-
test.yaml/0: input[1].source
-
test.yaml/0: description
-
test.yaml/0: max_runtime
-
test.yaml/0: command
2022-01-16
zenith
阅读(585) | 评论(0) | 转发(0) |