私は、Perl & Parse :: RecDescentを使ってファイルからいくつかのデータを解析しようとしています。私はPerlスクリプトで完全なデータファイルを投げることはできません。なぜなら、RecDescentはそれについて数日を要するからです。そこで私は膨大なデータファイルをRDサイズのチャンクに分割してランタイムを減らしました。テキストファイルを括弧で囲まれたセクションにチャンクする簡単な方法はありますか?
しかし、私はバランスの取れた括弧内のセクションを抽出する必要があります。私が現在行っているルーチンは堅牢ではありません(改行からの最後の閉じ括弧の位置にあまり依存しません)。例:
cell (identifier) {
keyword2 { };
...
keyword3 { keyword4 { } };
}
...more sections...
私はcell ... {
からの間隔とサブセクションの様々な量を持つことができます}
を閉じるマッチングにすべてを取得する必要があります。
これを簡単に行うには、いくつかのLinuxコマンドラインが必要ですか?何か案は?
編集:入力ファイルは約8M、文法〜60ルールです。
あなたが気にしないなら、あなたはどのソリューションを実装するのか聞いてみたいと思います。 –
私はText :: Balancedでしばらく遊んでいましたが、データファイルではまだ遅かったです。だから私は私のlibスプリッタの基礎としてあなたの例を使用しました。もう一度おねがいします、スクリプトは*ロット*より堅牢です。 – Marty
それを聞いてうれしいです。 :) –