私は下の例のような設定ファイルを変換しようとしているので、Oracleのテーブルに挿入するSQLコマンドを生成できます。私はPerlを使ってみようとしていますが、私はPythonのような他の言語を試してみたいと思っています。設定の複雑な設定ファイルをid、parent、key、valueの形式に変換する
例:(スペースはちょうどより見やすくするためのものである)に変換
# This is a comment
feed_realtime_processor_pool = (11, 12) ;
dropout_detection_time_start = "17:00";
# Sometimes the config can have sub-structures
named_clients = (
{
name = "thread1";
user_threads = (
{ name = "realtime1"; cpu = 11; } # more comments
{ name = "realtime2"; cpu = 12; } # more comments
);
}
);
(...)
:
id,parent, key, value
01,null, 'feed_realtime_processor_pool', '11'
02,null, 'feed_realtime_processor_pool', '12'
03,null, 'dropout_detection_time_start', '17:00'
04,null, 'named_clients', null
05,04, 'name', 'thread1'
06,04, 'user_threads', null
07,06, 'name', 'realtime1'
08,06, 'cpu', '11'
09,06, 'name', 'realtime2'
10,06, 'cpu', '12'
ので、ご質問は以下のとおりです。
Somebo dyはこれを行うことができるいくつかのlib /モジュールを知っていますか?私はconfigパーサを見つけることができましたが、ツリー形式で私に与える良いものを見つけることができませんでした。
もしそうでなければ、私はこのスクリプトをどのように起動するべきか、誰かが私に設定を解析するのに役立つ別のモジュールを使用するべきかについていくつかの示唆を与えることができますか?設定のクリーニングと解析は私の最も難しい部分です。
まずアップデート:私は言及を忘れてしまった
- 、私は私のデータベースにインポートするコンフィグのトンを持っており、これは1回限りのイベントではありません。このスクリプトは、別のインストールのために私の会社の顧客によって生成された新しい設定があるたびに実行されます。
- これはPythonが実行するよりも速いと思っていたので、私はperlを選択しました。
- 私は非常にSQLに精通していますが、Perlをあまりよく使っていません
- configsは、私が例を挙げたのと同じ構造に従いますが、唯一のバリエーションはキー/値のペアまたは中括弧の字下げなどがあります。
- DBIを使用してperlスクリプトを作成し始めましたが、主な問題はこの設定を簡単に処理できる形式に解析することです。私は正規表現が壊れている状況を常に見つけており、何度も何度も調整を続けています。自動的に設定を解析するためにlibを使うことができれば、それは素晴らしいことです。私はあなたが言及したものを試してみるつもりです。
ありがとう!
2回目の更新:
Guysは、私はPerl Monksでこの質問をクロスポストと私もテストしてることがある別のフィードバックを得ました。私はすべてをテストしたら回答を投稿します。ありがとう。
良い点は、私が今より多くの情報を追加しました。ありがとう –
[クロスポスト](http://perlmonks.org/?node_id=1175079) – stevieb