[pgsql-jp: 39048] Re: ログからのSQL文の抽出

utsumi takashi @ pat.hi-ho.ne.jp
2008年 1月 1日 (火) 23:44:23 JST


鈴木さん、こんにちは。
内海です。

年末にバタバタしていて返事が遅れました。

> 複数行になっている部分を単一行に戻すのがスジかなと思います。
> 
> ということで、「先頭に空白文字が入った行は前の行の続きである」と見なし、
> それを「空白文字1つ」へ置換してしまえば良いのではないかと。
> 
> 例えばこんな感じのスクリプトで。
> ------------------------------------------------------------------------
> #!/usr/bin/perl
> 
> my $log = '';
> while(<>) {
>     $log .= $_;
> }
> $log =~ s/\n\s+/ /gm;
> print $log;
> ------------------------------------------------------------------------
上記のスクリプトで、1行にまとめる事ができました。

その後、grep で insert,update,delete のsqlがある行を抽出し、
上記のスクリプトをヒントに、先頭のいらない文字を削除、行末に";"を
追加し、必用なsqlのテキストを作成する事ができました。

perlは今まで触った事がありませんでしたが、鈴木さんのサンプルのおかげで
何とかできました。

ありがとうございました。

---------------------------------------------------------------------
T.Utsumi  E-Mail : takashi @ pat.hi-ho.ne.jp




pgsql-jp メーリングリストの案内