Linux 如何解析多行中存在值的YAML文件
我有一个YAML文件,格式如下,其中一些值跨越多行Linux 如何解析多行中存在值的YAML文件,linux,shell,Linux,Shell,我有一个YAML文件,格式如下,其中一些值跨越多行 key1: value1 key2: description\ \ description followed in next line \n \ Another line of string 我正在使用grep命令“grep'^key1'”和“grep'^key2'”捕获键的值,但对于多行值,仅捕获第一行。是否有任何方法可以从YAML文件中捕获多行值 谢谢< P>如肖恩建议的,你应该考虑使用YAML解析器,比如“代码> YQ”
key1: value1
key2: description\
\ description followed in next line \n
\ Another line of string
我正在使用grep命令“grep'^key1'”和“grep'^key2'”捕获键的值,但对于多行值,仅捕获第一行。是否有任何方法可以从YAML文件中捕获多行值
谢谢
< P>如肖恩建议的,你应该考虑使用YAML解析器,比如“代码> YQ”。Python有一个YAML解析模块。如果您感到绝望,可以尝试以下代码:$ FILE=sandeep.yaml ; KEY=key2 ; VALUE=$( python3 -c "from yaml import load; f = open('$FILE'); y = load(f) ; print( y['$KEY'] )")
$ echo $VALUE
description\ \ description followed in next line \n \ Another line of string
上述代码要求系统上存在yaml模块。您可能需要调用此命令才能使上述代码正常工作:
pip3 install PyYaml
使用或其他YAML感知工具,而不是grep
。