Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 如何解析多行中存在值的YAML文件_Linux_Shell - Fatal编程技术网

Linux 如何解析多行中存在值的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”

我有一个YAML文件,格式如下,其中一些值跨越多行

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