【发布时间】:2021-12-08 10:43:37
【问题描述】:
我有下面的字符串,每一行都用换行符作为输入字符串
string="name: MAIN_ROLE
description: ROLE DESCRIPTION
readOnly:
roleReferences:
- roleTemplateAppId: app1
roleTemplateName: template2
name: Name1
- roleTemplateAppId: app2
roleTemplateName: template2
name: Name2
"
我喜欢将 YAML 字符串打印成逗号分隔的字符串,结果如下。输入字符串在“-”之后可以有任意数量的组件,这会产生新记录,但 MAIN_ROLE 值保持相同的第一列:
MAIN_ROLE,Name1,template1,app1
MAIN_ROLE,Name2,template2,app2
我尝试下面的代码用“-”分割行,但我没有得到正确的结果
echo "$a" | sed -n $'/^- $/,/^- $/p' <<< $string
【问题讨论】:
-
不要使用
sed解析JSON。 -
我认为字符串是 YAML 而不是 JSON。我不认为 Bash 有任何内置的东西可以让我解析这些类型的字符串。我想我将不得不拆分以“-”分隔的字符串并存储在数组中并使用“:”进一步拆分以获得最终结果,但我坚持第一步。