_ another blog@hatena/Wiki/BBS
なんかこんなん既に世の中にありそうな気がするが、仕事中についカッとなったので作った。
SQLで書かれたDBのスキーマ定義をgrepして「どのテーブルの定義にその行があるのか」を表示する感じ。
#!/usr/bin/perl
use strict;
my $DDLFILE = '/file/path/to/DDL.sql';
unless($ARGV[0]){
exit;
}
open(my $DDL,$DDLFILE);
my $current = '';
my $line = 0;
while(<$DDL>){
$line++;
chomp($_);
if(/create\s+table\s+(\S*)/i){
$current = $1;
}
if(/$ARGV[0]/o){
printf "%-25s(line:%d): %s\n",$current,$line,$_;
}
}