Разобрать нумерованный список пули в CSV, ориентированный на схему в Unix? - PullRequest
0 голосов
/ 11 марта 2019

Мне удалось проанализировать входящий многоуровневый объединенный yaml в файл маркированных данных. Спасибо Как мне разобрать файл YAML из сценария оболочки Linux? . Теперь ищем, чтобы разобрать файл с номерами маркеров, чтобы проглотить его в улье. Но данные должны быть схематичными, с вложенными объектами, перенесенными в нижние. Я не могу установить в коробке никаких новых парсеров json / yaml, поэтому для генерации их нужно использовать обычные методы awk / sed / regex. Любая помощь будет великолепна

например. входной файл:

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>
...