mixiユーザー(id:65933753)

2020年02月27日21:30

19 view

厚労省のコロナ対応表解析ツール

厚労省のコロナ対応表解析ツール

curl https://www.mhlw.go.jp/stf/newpage_09747.html | LinuxTools\nkf32.exe -s | LinuxTools\gawk.exe -f Scrap_1.awk nkf32_shift.txt | LinuxTools\gawk.exe -f Scrap_2.awk | LinuxTools\gawk.exe -f Scrap_3.awk

#!/usr/bin/gawk -f
# Scrap_1.awk

/国外の発生状況について/,/別添/{
gsub("0","0");
gsub("1","1");
gsub("2","2");
gsub("3","3");
gsub("4","4");
gsub("5","5");
gsub("6","6");
gsub("7","7");
gsub("8","8");
gsub("9","9");
print;
}

#!/usr/bin/gawk -f
# Scrap_2.awk

/海外の国・地域の政府公式発表に基づくと、.*?現在、日本国外で新型コロナウイルス関連の肺炎と診断されている症例及び死亡例の数は以下のとおり。/{
mat_1 = match($0,/<u>/);
mat_2 = match($0,/<\/u>/);
date_org = substr($0,mat_1,mat_2 - mat_1);
sub("<u>","",date_org);
date_edit = date_org;
YYYY = strftime("%Y",systime());
gsub("月","/",date_edit);
gsub("日","/",date_edit);
gsub(":","/",date_edit);
split(date_edit,dateArrays,"/");
MM = dateArrays[1];
if(length(MM) == 1){
MM = "0"MM;
}
DD = dateArrays[2];
if(length(DD) == 1){
DD = "0"DD;
}
HH = dateArrays[3];
if(length(HH) == 1){
HH = "0"HH;
}
mm = dateArrays[4];
if(length(mm) == 1){
mm = "0"mm;
}
YYYYMMDDHHmm = YYYY MM DD HH mm;
delete dateArrays;
print YYYYMMDDHHmm;
next;
}

{
gsub("\t","");
gsub(",","");
gsub("※","");
gsub("<strong>","");
gsub("</strong>","");
gsub("<u>","");
gsub("</u>","");
gsub("<sup>","");
gsub("</sup>","");
gsub("</td>","");
gsub("名","");
}

/^<td style=".*?">/{
mat = match($0,/<td style=".*?">/);
Tex = substr($0,RSTART + RLENGTH);
print Tex;
}

#!/usr/bin/gawk -f
# Scrap_3.awk

(NR == 1){
CSV = $0;
next;
}

{
if( (NR - 1) % 3){
ORS = ",";
} else {
ORS = "\n";
}
print > CSV".csv";
}

国・地域,感染者数,死亡者数
中国,77658,2663
香港,81,2
マカオ,10,0
台湾,30,1
タイ,35,0
韓国,833,7
米国,35,0
ベトナム,16,0
シンガポール,90,0
フランス,12,1
オーストラリア,22,0
マレーシア,22,0
ネパール,1,0
カナダ,10,0
カンボジア,1,0
スリランカ,1,0
ドイツ,16,0
アラブ首長国連邦,13,0
フィンランド,1,0
イタリア,229,6
インド,3,0
フィリピン,3,1
英国,13,0
ロシア,2,0
スウェーデン,1,0
スペイン,2,0
ベルギー,1,0
エジプト,1,0
イラン,61,12
イスラエル,2,0
レバノン,1,0
クウェート,3,0
バーレーン,1,0
オマーン,2,0
アフガニスタン,1,0
イラク,1,0

0 0

コメント

mixiユーザー

ログインしてコメントを投稿する