解析子弹编号列表模式面向CSV在UNIX?(Parse bullet numbered list t

2019-10-28 13:08发布

我能够解析输入的多层次合并YAML到符号数据文件。 感谢如何可以解析从Linux shell脚本YAML文件? 。 现在看解析子弹编号的数据文件中的蜂巢摄取。 但数据需要示意图,其中嵌套对象结转到下ones.I不能安装在框中的任何新的JSON / YAML解析器所以还得用awk / sed的/正则表达式通常的方法来生成它。 任何帮助将是巨大的

例如,输入文件:

1="name: exports"
1_1="name: Wolverine"
1_1_description="BLA BLA"
1_1_active_date="2019-01-07 00:00:00"
1_1_1="name: strength"
1_1_1_type="superhuman"
1_1_2="name: power"
1_1_2_type="plasma"
1_1_2_description="XYZ"
1_1_2_example="21352352"
1_2="name: Cyclops"
1_2_description="BLA BLA"
1_2_active_date="2018-12-18 00:00:00"
1_2_1="name: speed"
1_2_1_type="datetime"
1_2_1_description="|-"
1_2_1_example="xyz"
1_2_2="name: agility"
1_2_2_type="bigint"
1_2_2_description="something"
1_2_2_example="21352352"

在CSV预期的输出:

Wolverine,strength,superhuman,,
Wolverine,power,plasma,XYZ,21352352
Cyclops,speed,datetime,|-,xyz
Cyclops,agility,bigint,something,21352352

我们的想法是在蜂巢解析它如下表所示:

 <table class="tableizer-table"> <thead><tr class="tableizer-firstrow"><th>Level 1(name)</th><th>Level 2(name)</th><th>Level 2 (type)</th><th>Level 2 (description)</th><th>Level 2 (example)</th></tr></thead><tbody> <tr><td>Wolverine</td><td>strength</td><td>superhuman</td><td>&nbsp;</td><td>&nbsp;</td></tr> <tr><td>Wolverine</td><td>power</td><td>plasma</td><td>XYZ</td><td>21352352</td></tr> <tr><td>Cyclops</td><td>speed</td><td>datetime</td><td>|-</td><td>xyz</td></tr> <tr><td>Cyclops</td><td>agility</td><td>bigint</td><td>something</td><td>21352352</td></tr> </tbody></table> 

文章来源: Parse bullet numbered list to schema oriented csv in unix?