100周年のページ

米軍経緯度データ


11/5 米軍の台風データから移動する経緯度データを得る bei2typ.awk
実行ファイル
--------------(bei2typ.bat)-----------------
mawk32 -fbei2typ.awk bei2typ.dat > bei2typr.csv
--------------(bei2typ.bat)-----------------

AWKのスクリプト
--------------(bei2typ.awk)-----------------
{ #米軍の台風データから移動する経緯度データを得る bei2typ.awk
if(NR == 3) print $0
if(/^T/) {#先頭がTの時出力する
gsub(/N/,"")
gsub(/E/,"")
printf("%s,%s,%s\n",$1, $2/10, $3/10)
}
}
--------------(bei2typ.awk)-----------------

米軍データ
--------------(bei2typ.dat)-----------------
WTPN51 PGTW 042100
警告ATCG MIL 26W NWP 161104195104
2016110418 26W MEARI 009 01 020 08 SATL 040
T000 167N 1398E 065 R064 040 NE QD 055 SE QD 045 SW QD 025 NW QD R050 080 NE QD 100 SE QD 085 SW QD 050 NW QD R034 150 NE QD 180 SE QD 175 SW QD 100 NW QD
T012 178N 1407E 080 R064 020 NE QD 035 SE QD 015 SW QD 010 NW QD R050 050 NE QD 075 SE QD 055 SW QD 040 NW QD R034 145 NE QD 175 SE QD 155 SW QD 130 NW QD
T024 191N 1418E 100 R064 035 NE QD 040 SE QD 035 SW QD 025 NW QD R050 055 NE QD 080 SE QD 070 SW QD 050 NW QD R034 150 NE QD 170 SE QD 150 SW QD 160 NW QD
T036 209N 1434E 105 R064 040 NE QD 045 SE QD 040 SW QD 030 NW QD R050 070 NE QD 080 SE QD 060 SW QD 050 NW QD R034 185 NE QD 175 SE QD 160 SW QD 205 NW QD
T048 234N 1451E 095 R064 050 NE QD 050 SE QD 045 SW QD 040 NW QD R050 095 NE QD 090 SE QD 070 SW QD 075 NW QD R034 300 NE QD 200 SE QD 195 SW QD 260 NW QD
T072 290N 1494E 065 R064 025 NE QD 020 SE QD 040 SW QD 040 NW QD R050 115 NE QD 080 SE QD 105 SW QD 125 NW QD R034 330 NE QD 240 SE QD 190 SW QD 255 NW QD
T096 341N 1567E 040 R034 280 NE QD 260 SE QD 195 SW QD 165 NW QD
--------------(bei2typ.dat)-----------------
計算結果
--------------(bei2typr.csv)-----------------
2016110418 26W MEARI 009 01 020 08 SATL 040
T000,16.7,139.8
T012,17.8,140.7
T024,19.1,141.8
T036,20.9,143.4
T048,23.4,145.1
T072,29,149.4
T096,34.1,156.7
--------------(bei2typr.csv)-----------------

同一行の削除


11/2 同一行の削除を行う。(uniq)
-------------------(uniq.awk)------------------------
a != $0 {a = $0; print}
-------------------(uniq.awk)------------------------

snote dataの表題一覧2


10/17 snote dataの表題一覧2
-------------------(t_get2.awk)------------------------
BEGIN { # snote dataの表題一覧 t_get2.awk
FS =">"
}
{
gsub(/</,"")
print "No-" $1 " " $4 " *** " $2 " ***"
}
-------------------(t_get2.awk)------------------------

snote dataの表題一覧


10/17 snote dataの表題一覧
-------------------(t_get.awk)------------------------
BEGIN { # snote dataの表題一覧 t_get.awk
FS =">"
}
{
gsub(/</,"")
print "No-" $1 " *** " $2 " ***"
}
-------------------(t_get.awk)------------------------

makeDB


8/25
-------------------(makeDB.awk)------------------------
BEGIN { # makeDB.awk
while (getline < "db_head.txt" > 0) dat[++n]=$0 # 前文 
while (getline < "db.txt" > 0) dat[++n]=$0 #    本文 
while (getline < "db_tail.txt" > 0) dat[++n]=$0 # 後文 

for(j=1; j<=n; j++)
print dat[j] > "index.html.txt" # 出力リスト
}
-------------------(makeDB.awk)------------------------
前記で作成したサンプル 243名DB
平成28年7月1日 中部地方整備局 幹部DB 半角カナ氏名検索
日経ソフトウエア 2010年8月号 121〜122ページ
いまどきのJava Scriptの
前文は、データ以前
後文は、データ以降を利用。

名簿整形


7/13 名簿整形
注意 \t を 全角スペース2個で表示
-------------(con_s.awk)-----------------------------------
BEGIN{ #コンサルタント名簿データ整形 con_s.awk
  FS = ","
  OFS = ","
}
{
  if($8 ~ /^[0-9]/) $7 = ",," $7
  if($9 ~ /^[0-9]/) $8 = "," $8
  if(NF>10) {
    $11 = $11 $12 $13;
    $12 ="";
    $13 ="";
  }
  print
}
-------------(con_s.awk)-----------------------------------

汎用集計


7/5 汎用集計
注意 \t を 全角スペース2個と<を全角で表示
-------------(tcj_sum5.awk)-----------------------------------
BEGIN { #汎用集計  tcj_sum5.awk
# データファイル版(c:\temp\data.csv)
  FS = ","
  sum1 = 0; sum3=0
  k = 0  
  print "\t\t ***** 汎用集計 *****"
  print "\t\t *** input data ***"
  while (getline < "c:\\temp\\data.csv" > 0)
    if($1 != ""){
    print
#     dat[++n]=$0; # 入力リスト
    cp1[$2] += 1 #個別出現回数計
    cp3[$2] += $3 #個別数量計
    sum1 += 1 #個別出現回数合計
    sum3 += $3 #個別数量合計

  } else date1 = $12

  print "\n\n\t\t *** output data ***"
  print "\n\t\t ***** 各種別集計結果 *****\n"
  for(i in cp1) {  
    cp2[++k,1]= i; cp2[k,2]=cp1[i]; cp2[k,3]=cp3[i]
  }
  if(sum3 > 0) { print "出現回数と項目別集計\n\n"
    for(i=1; i<k; i++)
      for(j=i+1; j<=k; j++) {
        if(cp2[i,3]<cp2[j,3]) {
          tmp=cp2[i,3]; cp2[i,3]=cp2[j,3]; cp2[j,3]=tmp;
          tmp=cp2[i,2]; cp2[i,2]=cp2[j,2]; cp2[j,2]=tmp;
          tmp=cp2[i,1]; cp2[i,1]=cp2[j,1]; cp2[j,1]=tmp;
        }

      }
    for(i=1; i<=k; i++)
      printf("\t\t %10s %10d %10d\n", cp2[i,1], cp2[i,2], cp2[i,3])

  }
  else { print "出現回数\n\n"
    for(i=1; i<k; i++)
      for(j=i+1; j<=k; j++) {
        if(cp2[i,2]<cp2[j,2]) {
          tmp=cp2[i,2]; cp2[i,2]=cp2[j,2]; cp2[j,2]=tmp;
          tmp=cp2[i,1]; cp2[i,1]=cp2[j,1]; cp2[j,1]=tmp;
        }

      }
    for(i=1; i<=k; i++)
      printf("\t\t %10s %10d\n", cp2[i,1], cp2[i,2])

  }

  printf("\n 以上 作成日時 %16s 汎用集計k.bat(han_syu.xlsm+tcj_sum5.awk=>集計結果h.txt)\n", date1)
  
}

-------------(tcj_sum5.awk)-----------------------------------
-------------(集計結果h.txt)-----------------------------------
***** 汎用集計 *****
*** input data ***
2016/6/22 5:09,丸川,148,,,,,,,,,
2016/6/22 5:09,下村,149,,,,,,,,,
2016/6/22 5:09,宇都宮,150,,,,,,,,,
2016/6/22 5:09,細川,151,,,,,,,,,
2016/6/22 9:04,村木,152,,,,,,,,,
2016/6/23 5:42,小池,153,,,,,,,,,
2016/6/23 5:42,片山,154,,,,,,,,,
2016/6/23 5:42,桜井,155,,,,,,,,,
2016/6/23 5:42,丸川,156,,,,,,,,,
2016/6/23 5:42,下村,157,,,,,,,,,
2016/6/23 5:43,宇都宮,158,,,,,,,,,
2016/6/23 5:43,細川,159,,,,,,,,,
2016/6/23 5:43,村木,160,,,,,,,,,
2016/6/24 5:51,小池,161,,,,,,,,,
2016/6/24 5:51,片山,162,,,,,,,,,
2016/6/24 5:51,桜井,163,,,,,,,,,
2016/6/24 5:51,丸川,164,,,,,,,,,
2016/6/24 5:52,下村,165,,,,,,,,,
2016/6/24 5:52,宇都宮,166,,,,,,,,,
2016/6/24 5:52,細川,167,,,,,,,,,
2016/6/24 5:52,村木,168,,,,,,,,,
2016/6/25 16:54,小池,169,,,,,,,,,
2016/6/25 16:54,片山,170,,,,,,,,,
2016/6/25 16:54,桜井,171,,,,,,,,,
2016/6/25 16:54,丸川,172,,,,,,,,,
2016/6/25 16:54,下村,173,,,,,,,,,
2016/6/25 16:54,宇都宮,174,,,,,,,,,
2016/6/25 16:55,細川,175,,,,,,,,,
2016/6/25 16:55,村木,176,,,,,,,,,
2016/6/26 4:46,小池,177,,,,,,,,,
2016/6/26 4:46,片山,178,,,,,,,,,
2016/6/26 4:46,桜井,179,,,,,,,,,
2016/6/26 4:46,丸川,180,,,,,,,,,
2016/6/26 4:47,下村,181,,,,,,,,,
2016/6/26 4:47,宇都宮,182,,,,,,,,,
2016/6/26 4:47,細川,183,,,,,,,,,
2016/6/26 4:47,村木,184,,,,,,,,,
2016/6/28 5:31,小池,185,,,,,,,,,
2016/6/28 5:31,片山,186,,,,,,,,,
2016/6/28 5:31,下村,187,,,,,,,,,
2016/6/28 5:31,丸川,188,,,,,,,,,
2016/6/28 5:31,下村,189,,,,,,,,,
2016/6/28 5:31,宇都宮,190,,,,,,,,,
2016/6/28 5:32,細川,191,,,,,,,,,
2016/6/28 5:32,村木,192,,,,,,,,,
2016/6/29 4:58,小池,193,,,,,,,,,
2016/6/29 4:58,片山,194,,,,,,,,,
2016/6/29 4:58,桜井,195,,,,,,,,,
2016/6/29 4:58,丸川,196,,,,,,,,,
2016/6/29 4:58,下村,197,,,,,,,,,
2016/6/29 4:59,宇都宮,198,,,,,,,,,
2016/6/29 4:59,細川,199,,,,,,,,,
2016/6/29 4:59,村木,200,,,,,,,,,
2016/6/30 5:42,小池,201,,,,,,,,,
2016/6/30 5:43,片山,202,,,,,,,,,
2016/6/30 5:43,桜井,203,,,,,,,,,
2016/6/30 5:43,丸川,204,,,,,,,,,
2016/6/30 5:43,下村,205,,,,,,,,,
2016/6/30 5:43,宇都宮,206,,,,,,,,,
2016/6/30 5:43,細川,207,,,,,,,,,
2016/6/30 5:44,村木,208,,,,,,,,,
2016/7/1 4:49,小池,209,,,,,,,,,
2016/7/1 4:49,片山,210,,,,,,,,,
2016/7/1 4:49,桜井,211,,,,,,,,,
2016/7/1 4:49,丸川,212,,,,,,,,,
2016/7/1 4:49,下村,213,,,,,,,,,
2016/7/1 4:50,宇都宮,214,,,,,,,,,
2016/7/1 4:50,細川,215,,,,,,,,,
2016/7/1 4:50,村木,216,,,,,,,,,
2016/7/1 18:04,増田,217,,,,,,,,,
2016/7/2 5:57,小池,218,,,,,,,,,
2016/7/2 5:57,片山,219,,,,,,,,,
2016/7/2 5:57,桜井,220,,,,,,,,,
2016/7/2 5:57,丸川,221,,,,,,,,,
2016/7/2 5:58,下村,222,,,,,,,,,
2016/7/2 5:58,宇都宮,223,,,,,,,,,
2016/7/2 5:58,細川,224,,,,,,,,,
2016/7/2 5:58,村木,225,,,,,,,,,
2016/7/2 5:58,増田,226,,,,,,,,,
2016/7/3 8:08,小池,227,,,,,,,,,
2016/7/3 8:08,片山,228,,,,,,,,,
2016/7/3 8:08,丸川,229,,,,,,,,,
2016/7/3 8:08,下村,230,,,,,,,,,
2016/7/3 8:08,宇都宮,231,,,,,,,,,
2016/7/3 8:08,細川,232,,,,,,,,,
2016/7/3 8:09,村木,233,,,,,,,,,
2016/7/3 8:09,増田,234,,,,,,,,,
2016/7/5 4:52,小池,235,,,,,,,,,
2016/7/5 4:52,片山,236,,,,,,,,,
2016/7/5 4:52,丸川,237,,,,,,,,,
2016/7/5 4:53,下村,238,,,,,,,,,
2016/7/5 4:53,宇都宮,239,,,,,,,,,
2016/7/5 4:53,村木,240,,,,,,,,,
2016/7/5 4:53,増田,241,,,,,,,,,


*** output data ***

***** 各種別集計結果 *****

出現回数と項目別集計


下村 13 2506
村木 12 2354
宇都宮 12 2331
丸川 12 2307
片山 11 2139
小池 11 2128
細川 11 2103
桜井 8 1497
増田 4 918

以上 作成日時 7/6/2016 13:20 汎用集計k.bat(han_syu.xlsm+tcj_sum5.awk=>集計結果h.txt)
-------------(集計結果h.txt)-----------------------------------


移動平均の計算


6/10 太陽27日周期の移動平均の計算
注意 \t を 全角スペース2個と<を全角で表示
----------(sun27hei3.awk)---------------------------------------
BEGIN {# 太陽27日周期の移動平均の計算 sun27hei3.awk
  FS = ","
  st1 = 41974+27 # 2014/12/1+27
}
{

if(NR == 1)
  for(i=2; i<NF; i++) {
    sum[i-1] = $i
    sum27 += $i
  }
else {
  for(i=2; i<NF; i++){
      sum27 = sum27-sum[i-1]+$i
      printf("%d,%d\n", st1++, int(sum27/27))
      sum[i-1] = $i
  }
}
}

----------(sun27hei3.awk)---------------------------------------
(入力) 黒点日々データ

(出力) 黒点27日移動平均 280610現在 計算結果

cpd分類集計 未登録チェック付2


5/31 画像版


cpd分類集計 未登録チェック付


5/29
----------(cpd_sum3.awk)---------------------------------------
BEGIN { #cpd分類集計 分野・形態別 cpd_sum3.awk 未登録チェック付
FS = ","
sum1 = 0
print "\t\t ***** CPD 部門別集計 *****"
print "\t\t *** input data ***"
}
{
printf($11 == $12 ? "%s\n" : "%s ***** 未登録 *****\n", $0)
cp1[$9] += $12
cp2[$8] += $12
cp3[$2] += $12
sum1 += $12
# print $9, $12
}
END {
print "\n\n\t\t *** output data ***"
print "\n\t\t ***** CPD 分野別集計結果 *****\n"
printf("\t\t 合計 = %5d\n", sum1)
for(i in cp1)
printf("\t\t %5s %5d\n", i, cp1[i])
print "\n\t\t ***** CPD 形態別集計結果 *****\n"
for(i in cp2)
printf("\t\t %5s %5d\n", i, cp2[i])
print "\n\t\t ***** CPD 個人別集計結果 *****\n"
for(i in cp3)
printf("\t\t %10s %5d\n", i, cp3[i])
}
----------(cpd_sum3.awk)---------------------------------------
cpd分類集計 未登録チェック付 実行結果


cpd分類集計


5/28
----------(cpd_sum.awk)---------------------------------------
BEGIN { #cpd分類集計 cpd_sum.awk
FS = ","
sum1 = 0
print "\t\t ***** CPD 部門別集計 *****"
print "\t\t *** input data ***"
}
{
print
cp1[$9] += $12
sum1 += $12
# print $9, $12
}
END {
print "\n\t\t ***** CPD 部門別集計結果 *****\n"
printf("\t\t 合計 = %5d\n", sum1)
for(i in cp1)
printf("\t\t %5s %5d\n", i, cp1[i])
}
----------(cpd_sum.awk)---------------------------------------
CPD 部門別集計結果

リンク付バナーリストに変換


5/26
注意 \t を 全角スペース2個と<を全角で表示
----------(make_list2.awk)---------------------------------------
{ #リンク付バナーリストに変換 make_list2.awk
  gsub(/ /," ")
  gsub(/��/,"")
  gsub(/��/,"")
  $4 = $4~/http/ ? $4 : ""
  $4 = $5~/http/ ? $5 : $4

  if($4!="")  printf("<a href=\"%s\">\n", $4)
  printf("<img src=\"%s.jpg\" alt=\"%s\">", $1, $1)
  if($4!="")   printf("</a>")
  print "<br><br>"
}
----------(make_list2.awk)---------------------------------------
CPD 部門別集計結果

バナーリストに変換


5/25
注意 \t を 全角スペース2個と<を全角で表示
----------(make_list.awk)---------------------------------------
{ #バナーリストに変換 make_list.awk
  gsub(/��/,"")
  gsub(/��/,"")
  printf("<img src=\"%s.jpg\" alt=\"%s\"><br><br>\n", $1, $1)
}
----------(make_list.awk)---------------------------------------

ドメインとipアドレスの抽出2


5/17
----------(d_get2.awk)---------------------------------------
BEGIN { #d_get2.awk jpドメインとipアドレスの抽出2
FS = "."
}
{
if(/com$/ || /net$/) {
for(i=NF-1; i<=NF; i++)
printf(i == NF ? "%s" : "%s.", $i)
print ""
}
else if(/jp/) {
for(i=NF-2; i<=NF; i++)
printf(i == NF ? "%s" : "%s.", $i)
print ""
}
else print
}
----------(d_get2.awk)---------------------------------------

ドメインとipアドレスの抽出


5/17
----------(d_get.awk)---------------------------------------
BEGIN { #d_get.awk jpドメインとipアドレスの抽出
FS = "."
}
{
if(/jp/ || /com/ || /net/) {
for(i=NF-2; i<=NF; i++)
printf(i == NF ? "%s" : "%s.", $i)
print ""
}
else print
}
----------(d_get.awk)---------------------------------------

太陽の黒点数


5/14
----------(sun_s.awk)---------------------------------------
{ #太陽の黒点数をhttp://www2.nict.go.jp/aeri/swe/swx/swcenter/sunspot.htmlから
#コピペして表にする。sun_s.awk
if(NF != 0)
printf(/\// ? "\n%s," : "%d,", $0)
}
----------(sun_s.awk)---------------------------------------

超高速sort カンマ区切り出力


4/6
注意 \t を 全角スペース2個で表示
----------(d_sort2cf.awk)---------------------------------------
{ # d_sort2cf.awk $1に順番がある直接記憶 超高速sort カンマ区切り出力
  ++n
  a1[$1] = $0
}
END {
  for(i=1; i<=n; i++) s2c(a1[i])
}

function s2c(aa){
  $0 = aa
  for(j=1; j<=NF; j++)
    printf(j == NF ? "%s\n" : "%s,", $j)
  return
}
----------(d_sort2cf.awk)---------------------------------------



月刊建設タイトル一覧


2/5
----------(zen.awk)---------------------------------------
{ # zen.awk 月刊建設のタイトル抽出
a1 = a1 "." $0
if(/[0-9]年/ && /号/) {
gsub(/ /," ")
a2 = $2
}
if(/P[0-9]/ || /p[0-9]/) {
print a2 "=>" a1;
a1 = ""
}
}
----------(zen.awk)---------------------------------------
月刊建設タイトル一覧

新電力中部地域抽出


1/30
----------(sin_den.awk)---------------------------------------
{ #新電力中部地域抽出 sin_den.awk
if(/^[0-9]/) a1 = $0
if(/中部/ || /全国/) {
if(a1 == $0) print $0
else print a1 $0
a1 =""
}
}
----------(sin_den.awk)---------------------------------------

入札結果抽出


1/21
----------(ppi_r.awk)---------------------------------------
{# ppi_r.awk 入札結果抽出
gsub(/(税抜き)/,"")
gsub(/,/,"")
if(/設計書番号/) a1[n, 0] = $2
if(/業務名称/) a1[++n, 1] = $2

if(/予定価格/) a1[n, 2] = $2
# if($2 == "" && /落札価格/) {--n; next}
if(/落札者名/) a1[n, 3] = $2
if(/落札価格/) a1[n, 4] = $2
}
END {
for(i=1; i<=n; i++) {
printf("%4d-", i)
for(j=0; j<=4; j++) printf("%s, ", a1[i, j])
if(a1[i, 2] > 0) printf("%5.1f%\n", a1[i, 4] / a1[i, 2] * 100)
else print "" }
}
----------(ppi_r.awk)---------------------------------------

d_sort.awk


1/6
----------(d_sort.awk)---------------------------------------
{ # d_sort.awk $1に順番があるため直接記憶 超高速sort
++n
a1[$1] = $0
}
END {
for(i=1; i<=n; i++) print a1[i]
print ""
}
----------(d_sort.awk)---------------------------------------











 © 100周年のページ by 管理者 Script by 帰宅する部活 Designed by info-cache.com 

Menu

Contents