私は bash スクリプトを完全に python に移植しようとしています。これは、python に飛び込む試みとして行っています。
bash スクリプトの一部は、正規表現に応じてセクションのキャプチャを処理します。
これは私がbashスクリプトで行った方法です:
正規表現を検索します [複数行] 例: m/^[^\S\n]*\([\w0-9,*\s]*\)\s*\{[^\S\n]*\}/gm
//実際の正規表現ではありません!
上記の正規表現の開始行番号を取得します
awk
while ループで行番号から読み取りを開始するために使用します。各行をスキャンしてメソッド start を検索します。つまり、見つかった[
場合は count 変数をインクリメントします。[
それ以外の場合は]
、カウンターをデクリメントしNR
ます。これにより、セクションの終了行番号がわかりました。
繰り返しますが、私awk
はセクションを鳴らしていました。
nawk -v start=$var -v end=$var2 'NR >=start && NR <=end' file.sci
扱うファイル例:
!!--Blah
!!
!!
method1 {fn->23}[ --line 12
if [ ] ;else[]
] --line 14
method2 {fn->23,f2->65}[
if [ ] ;else[i=0]
[[[[]]]]
]
bashcript が行ったことは、12 行目で method1 を開始し、この開始を awk 関数に与えて、行ごとに読み取り、カウンターをオンに[
し]
、最後にメソッド 1 の 14 行目を与えたことです。番号 メソッドを別のファイルに取り除きました。
私は正規表現の部分を実行しましたが、行番号を使用したアプローチがPythonで実行可能かどうかはわかりません。言及されたものよりも優れたアルゴリズムが存在すると確信しています。誰かが私を正しい方向に導くか、サンプルコードまたはポインターを提供していただければ幸いです。