これまでは,もとのpdfファイルから,pdftotext(コマンドラインツール)でテキストにしたものと, PDFelement6 Pro(無料版)でエクセル化したものとを組み合わせて,国・地域別データを整理した日次統計テキストファイルをつくっていた。
新しい様式ではpdftotextの出力がちょっとましな感じだったので,perlプログラミング1発+若干の手作業による修正で,上記の日次統計テキストファイルまでたどり着くことができそうだ。
いや,Johns Hopkins 大学のCSVデータを使えという話もあるかもしれないが,いちおうそこはほれ,WHOを支持しているので。
あいかわらず正規表現もまともに習得していないので泥臭いperlプログラムになった。
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# /usr/local/bin/perl
# 05/02/2020 K. Koshigiri
# 05/07/2020 K. Koshigiri -> revised version
# 05/07/2020 K. Koshigiri -> revised version
# extract data from WHO covid-19 reports
# https://www.who.int/emergencies/diseases/
# novel-coronavirus-2019/situation-reports/
# usage:: ./who.pl < pdf-in.txt > out.txt
while($line = <STDIN>) {
chomp($line);
if($line =~ /([A-Z].*)/) {
$a=$1;
$a =~ s/\(.*//;
$flg='a';
} elsif($flg eq 'a' && $line =~ /([\d\h]+)/) {
$b=$1;
$b =~ s/\h//;
$flg='b';
} elsif($flg eq 'b' && $line =~ /([\d\h]+)/) {
$c=$1;
$c =~ s/\h//;
$flg='c';
} elsif($flg eq 'c' && $line =~ /([\d\h]+)/) {
$d=$1;
$d =~ s/\h//;
$flg='d';
} elsif($flg eq 'd' && $line =~ /([\d\h]+)/) {
$e=$1;
$e =~ s/\h//;
$flg='';
print("$a\n$b\n$c\n$d\n$e\n");
}
}
※WHOのデータ形式が変わったので,若干修正した(2020.5.7)。
0 件のコメント:
コメントを投稿