総務省のHPからアマチュア局を検索したら、 433365局がひっとした。
それにしても沢山の局が登録している。
試しに500局をダウンロードして、コピペでファイルに保存。
その中でコールサインだけ抜き出すにはどうすれば良いか?
まぁ手っ取り早く正規表現を使ってパターンマッチさせれば良い
で、
JA1から始まる。7Aから始まる。8Jから始まる。 この3パターンがあります
/J[A-S]\d\w{2,3}/ /7[A-S]\d\w{3}/ /8[J-N]\d\w+/
正規表現で書くとこのようになります。
肝心な正規表現が掛けたので、perlでコーディングしました
猛者なら1行で掛けてしまうかもしれませんが・・・
use strict; my $fn="1-1.txt"; my @call_list; my $ct=0; if(!open(SOUMU, "<:utf8", $fn)){print("File Open ERR $fn\n");} while(<SOUMU>){ my $rec = $_; if($rec =~ /J[A-S]\d\w{2,3}/){ JA〜JSその後ろに数字1桁、その後ろに文字2〜3桁 push(@call_list,$&); } if($rec =~ /7[A-S]\d\w{3}/){ push(@call_list,$&); } if($rec =~ /8[J-N]\d\w+/){ push(@call_list,$&); } } close SOUMU; foreach my $p(@call_list){ $ct++; print "$ct $p \n"; }
出力をリダイレクトしてあげると、結果をファイルに落とせます。
ぴったり500件有ったので、抽出ミスはありませんでした。
交信中にその局の情報が欲しい時って有りますよね。
簡単にアクセスして情報を取得出来ればいいのですが、何ステップかしないと取得できない・・・て、なんか面倒くさ!
まぁ、ワンステップで検索するにはどうしたら・・・と考えている時の産物・・・
どうでも良いことでした。