最大のファィル名の位置と容量
12/21 フルパスデータから最大のファィル名の位置と容量を求める
-------------(fp_max.bat)------------------------------------
mawk32 -ffp_max.awk fp_maxin.dat > fp_maxo.dat
-------------(fp_max.bat)------------------------------------
-------------(fp_max.awk)------------------------------------
{ # フルパスデータから最大のファィル名の位置と容量を求める fp_max.awk
gsub(/\t/," ")
m3 = /\:/ ? NF - 2 : NF + 1
if(NF == 3) m3=2
printf(" %d+%d ", NF, $m3)
s1 += $m3/1000
if(m1 < $m3) {
m1 = $m3; m2= NR
}
# printf("%d %d %d\n", NR, m3, m1)
}
END { print"\n**** 結果 ****\n"
printf("line=%d / %d == %d Bites\n", m2, NR, m1)
printf(" 合計 %d KB \n", s1)
print ""
}
-------------(fp_max.awk)------------------------------------
-------------(fp_maxin.dat)------------------------------------
d:\just_size\2017\ksearch\tmpl\note.html 2684 2017/07/09 17:15:00
d:\just_size\2017\ksearch\tmpl\search.html 2023 2017/07/09 17:15:00
d:\just_size\2017\mie\0.1.pdf 378954 2017/11/09 16:12:00
d:\just_size\2017\mie\0.pdf 7244154 2017/11/09 16:04:00
d:\just_size\2017\mie\1.pdf 20658619 2017/11/09 16:05:00
d:\just_size\2017\mie\10.pdf 2800859 2017/11/09 16:09:00
d:\just_size\2017\mie\11.pdf 1813423 2017/11/09 16:09:00
-------------(fp_maxin.dat)------------------------------------
-------------(fp_maxo.dat)------------------------------------
4+2684 4+2023 4+378954 4+7244154 4+20658619 4+2800859 4+1813423
**** 結果 ****
line=5 / 7 == 20658619 Bites
合計 32900 KB
-------------(fp_maxo.dat)------------------------------------
ITV用htmlデータ作成
12/15 ITV用htmlデータ作成
---------(itv_m.awk)-----------------------------------
BEGIN { #ITV用htmlデータ作成 itv_m.awk (表示優先コピペ不可)
FS = ","
}
{
printf("\n<tr>\n<td><br>//%s", $2)
printf("</td>\n<td><img width=\"480\" height=\"360\" alt=\"\" src=\"%s", $1)
print"\"></td>"
printf("<td><br>//%s", $4)
printf("</td>\n<td><img width=\"480\" height=\"360\" alt=\"\" src=\"%s", $3)
print"\"></td>"
}
---------(itv_m.awk)-----------------------------------
2列を4列に
12/15 2行2列のcsvを1行4列のcsvにする。
---------(2to4.awk)-----------------------------------
{ # 2列を4列に 2to4.awk
if(++n%2 == 0)
printf("%s,%s\n", a1, $0)
else a1=$0
}
END {
if(++n%2 == 1) print
print ""
}
---------(2to4.awk)-----------------------------------
top 1行とbottom 5行を印刷
12/13 ファィルの top 1行とbotom 5行を印刷する t1b5.awk
---------(t1b5.awk)-----------------------------------
{# top 1行とbottom 5行を印刷する t1b5.awk
d[++n] = $0
}
END { print "\t top 1行と bottom 5行を印刷する\n"
print "\t top 1行\n\t 1:" d[1]
print "\n\t bottom 5行"
for(i=n-4; i<=n; i++)
printf("\t%6d:%s\n", i, d[i])
print ""
}
---------(t1b5.awk)-----------------------------------
ユーザー別アクセス回数
12/9 ユーザー別アクセス回数
---------(u_a.awk)-----------------------------------
{# ユーザー別アクセス回数 u_a.awk
d1[$1]++
}
END {print "\tユーザー別アクセス回数 \n"
for(i in d1) printf("\t %5d, %s\n", d1[i], i)
}
---------(u_a.awk)-----------------------------------
集計例(津工会HP)

form
10/11
---------------(form.bat)---------------------------
mawk32 -fform.awk score.txt > kekka.txt
---------------(form.bat)---------------------------
---------------(form.awk)---------------------------
BEGIN{ # form1.awk
while(getline <"form.txt" >0) form[++n]=$0
}
{
for(i=1;i<=n;i++){
linebuf=form[i]
for(j=1;j<=NF;j++) gsub("#" j,$j,linebuf)
print linebuf
if(i == NF ) print ""
}
}
---------------(form.awk)---------------------------
---------------(form.txt)---------------------------
#1 さんの成績は次のとおりです。
算数: #2 点
国語: #3 点
体操: #4 点
---------------(form.txt)---------------------------
---------------(score.txt)---------------------------
長嶋 28 42 69
王 51 21 85
---------------(score.txt)---------------------------
---------------(kekka.txt)---------------------------
長嶋 さんの成績は次のとおりです。
算数: 28 点
国語: 42 点
体操: 69 点
王 さんの成績は次のとおりです。
算数: 51 点
国語: 21 点
体操: 85 点
---------------(kekka.txt)---------------------------
JPG Quick Sort
9/20 jpgデータを抽出し、Quick Sortして出力する。
----------------(jpg_q_sort.awk)-------------------------------
# JPG Quick Sort jpg_q_sort.awk
/jpg/ || /JPG/ { A[++n] = $0
}
END {
qsort(A, 1, n)
for (i = 1; i <= n; i++) {
print A[i]
}
}
function qsort(A, left, right, i, last) {
if (left >= right)
return
swap(A, left, left+int((right-left+1)*rand()))
last = left
for (i = left+1; i <= right; i++)
if (A[i] < A[left])
swap(A, ++last, i)
swap(A, left, last)
qsort(A, left, last-1)
qsort(A, last+1, right)
}
function swap(A, i, j, t) {
t = A[i]; A[i] = A[j]; A[j] = t
}
----------------(jpg_q_sort.awk)-------------------------------
フルパスを得る
9/12 フルパスデータからフルパスのみを得る fpasget.awk
----------------(fpasget.awk)-------------------------------
{ # フルパスを得る fpasget.awk
if(d1 != jsubstr($0, 1, yen_C())) {
d1=jsubstr($0, 1, yen_C())
printf("%s\n", d1)
}
}
function yen_C() {
for(i=1; i<=jlength($0); i++)
if(jsubstr($0,i,1) ~ /\\/) n=i
#printf("%d ", n)
return(n-1)
}
----------------(fpasget.awk)-------------------------------
フルパスから バス名
8/8 フルパスから バス名
----------------(pas_get.bat)-------------------------------
mawk32 -fpas_get.awk dat1.txt > dat2.txt
----------------(pas_get.bat)-------------------------------
----------------(pas_get.awk)-------------------------------
{ #フルパスから バス名を出力する pas_get.awk
d1 = last_d()-1
print substr($0, 1, d1)
}
function last_d() {
for(i=length($0); i>=1; i--)
if(substr($0, i, 1) == "\\") {
# printf( " %d - ", i)
break
}
return(i)
}
----------------(pas_get.awk)-------------------------------
----------------(dat1.txt)-------------------------------
d:\counter.dat 0 2004/01/28 19:37:00
d:\iCloud フォト - ショートカット.lnk 455 2016/04/30 7:04:05
d:\MediaID.bin 528 2018/04/08 19:20:01
d:\Rfa.txt 1318 2018/06/13 7:43:12
d:\$RECYCLE.BIN\S-1-5-21-1793702253-1380987786-1625453576-1000\$I6YE1DS.pdf 544 2018/07/13 16:54:53
d:\$RECYCLE.BIN\S-1-5-21-1793702253-1380987786-1625453576-1000\$IDJJO37.dfz 544 2018/08/01 5:04:33
d:\$RECYCLE.BIN\S-1-5-21-1793702253-1380987786-1625453576-1000\$II9BO6H 544 2018/07/21 5:18:34
d:\$RECYCLE.BIN\S-1-5-21-1793702253-1380987786-1625453576-1000\$IVW4KEM.pdf 544 2018/07/13 16:54:52
d:\$RECYCLE.BIN\S-1-5-21-1793702253-1380987786-1625453576-1000\$IY9619Q.dfz 544 2018/08/01 5:03:35
d:\$RECYCLE.BIN\S-1-5-21-1793702253-1380987786-1625453576-1000\$R3LT17D.bin 528 2018/04/02 4:23:16
d:\$RECYCLE.BIN\S-1-5-21-1793702253-1380987786-1625453576-1000\$R6YE1DS.pdf 190333 2018/07/13 16:35:16
d:\$RECYCLE.BIN\S-1-5-21-1793702253-1380987786-1625453576-1000\$RDJJO37.dfz 102 2014/04/23 17:33:00
d:\$RECYCLE.BIN\S-1-5-21-1793702253-1380987786-1625453576-1000\$RRHONKL.bin 528 2018/03/22 5:55:28
d:\$RECYCLE.BIN\S-1-5-21-1793702253-1380987786-1625453576-1000\$RVW4KEM.pdf 190321 2018/07/13 16:34:37
d:\$RECYCLE.BIN\S-1-5-21-1793702253-1380987786-1625453576-1000\$RY9619Q.dfz 58 2014/04/23 17:33:00
d:\100\.htaccess 137 2018/03/05 11:16:13
d:\100\3fss\index.cgi 116 2017/04/18 6:32:32
d:\100\3siyo\index.cgi 139 2017/11/11 10:10:26
d:\100\ezi\cgi-lib.pl 15563 2005/08/31 19:16:00
d:\100\ezi\ezimode.cgi 10713 2018/03/18 18:21:37
d:\100\ezi\ezimode.txt 1029 2018/03/18 15:41:00
d:\100\ezi\jcode.pl 19380 2005/08/31 19:16:00
d:\100\f_web\frame2.html 701 2018/03/08 16:33:56
d:\100\hd-album8\adm.css 3515 2018/03/09 13:39:00
d:\100\hd-album8\album.dat 929 2018/03/09 16:01:00
----------------(dat1.txt)-------------------------------
----------------(dat2.txt)-------------------------------
d:
d:
d:
d:
d:\$RECYCLE.BIN\S-1-5-21-1793702253-1380987786-1625453576-1000
d:\$RECYCLE.BIN\S-1-5-21-1793702253-1380987786-1625453576-1000
d:\$RECYCLE.BIN\S-1-5-21-1793702253-1380987786-1625453576-1000
d:\$RECYCLE.BIN\S-1-5-21-1793702253-1380987786-1625453576-1000
d:\$RECYCLE.BIN\S-1-5-21-1793702253-1380987786-1625453576-1000
d:\$RECYCLE.BIN\S-1-5-21-1793702253-1380987786-1625453576-1000
d:\$RECYCLE.BIN\S-1-5-21-1793702253-1380987786-1625453576-1000
d:\$RECYCLE.BIN\S-1-5-21-1793702253-1380987786-1625453576-1000
d:\$RECYCLE.BIN\S-1-5-21-1793702253-1380987786-1625453576-1000
d:\$RECYCLE.BIN\S-1-5-21-1793702253-1380987786-1625453576-1000
d:\$RECYCLE.BIN\S-1-5-21-1793702253-1380987786-1625453576-1000
d:\100
d:\100\3fss
d:\100\3siyo
d:\100\ezi
d:\100\ezi
d:\100\ezi
d:\100\ezi
d:\100\f_web
d:\100\hd-album8
d:\100\hd-album8
----------------(dat2.txt)-------------------------------
拡張子別集計
8/2 拡張子別集計
---------------------(exten_kei.bat)---------------------------------
mawk32 -fexten_kei.awk fp.txt > fp_exten.txt
---------------------(exten_kei.bat)---------------------------------
---------------------(exten_kei.awk)---------------------------------
{ # 拡張子別集計 exten_kei.awk
d4 = (NF == 3) ? NF-2 : NF-3
d1 = substr($d4, length($d4)-3, 4)
d3 = d4 + 1
if(d1 ~ /^\./) {
d2[d1] += $d3/1000
# print d1 "--" $d3
}
}
END { print "************* 合計(KB) *******************"
for(i in d2) printf("%6s, %8d\n", i, d2[i])
}
---------------------(exten_kei.awk)---------------------------------
---------------------(fp.txt)---------------------------------
d:\100\hd-album8\upfile\75aa22e5abca75.jpg 135305 2018/03/09 15:48:00
d:\100\hd-album8\upfile\85aa22ecd6fb6c.jpg 91714 2018/03/09 15:50:00
d:\100\hd-album8\upfile\95aa22f22cc470.jpg 111701 2018/03/09 15:52:00
d:\100\hd-album8\upfile\not_use.txt 0 2018/03/09 13:39:00
d:\100\p_nlm\index.html 9378 2014/02/19 13:00:00
d:\100\p_nlm\menu.html 1049 2014/02/22 16:25:00
d:\100\p_nlm\nlm.php 11944 2014/02/22 16:25:00
d:\100\p_nlm\readme.txt 3010 2014/02/22 16:25:00
d:\100\p_nlm\skin.html 440 2014/02/22 16:25:00
d:\100\p_nlm\skin2.html 225 2014/02/22 16:25:00
d:\100\tnote\.htaccess 731 2018/03/08 9:27:38
d:\100\tnote\book1.txt 545 2016/08/19 10:01:00
d:\100\tnote\book2.txt 1022 2018/01/26 9:26:00
d:\100\tnote\book3.txt 1506 2018/01/26 5:34:00
---------------------(fp.txt)---------------------------------
---------------------(fp_exten.txt)---------------------------------
************* 合計(KB) *******************
.jpg, 338
.php, 11
.txt, 6
---------------------(fp_exten.txt)---------------------------------
フルバス名の頭に更新日
8/1 フルバス名の頭に更新年月日を付ける
--------------(fp2ymdfp.bat)----------------------------------------
mawk32 -ffp2ymdfp.awk fp.txt > fp_out.txt
--------------(fp2ymdfp.bat)----------------------------------------
--------------(fp2ymdfp.awk)----------------------------------------
{# フルバス名の頭に更新年月日を付ける fp2ymdfp.awk
d1 = $0
gsub(/\//, " ")
d2 = ($NF ~/:/) ? NF-3 : NF-2
d3 = $d2 $(d2+1) $(d2+2)
printf("%9d,%s\n", d3, d1)
}
--------------(fp2ymdfp.awk)----------------------------------------
--------------(fp.txt)----------------------------------------
f:\SanDiskSecureAccessV3_win.exe 8599336 2018/05/06 16:22:02
f:\TeraPad.exe 1185280 2006/11/10 19:39:00
f:\TeraPad.lzh 529647 2015/08/29 9:21:20
f:\SanDiskSecureAccessV2.0\DownloadForMac_SanDiskSecureAccessV2.0.pdf 311287 2013/10/01 21:11:04
f:\SanDiskSecureAccessV2.0\QuickStartGuide_SanDiskSecureAccessV2.0.pdf 2654401 2014/01/02 14:38:36
f:\SanDiskSecureAccessV3_mac.app\Contents\Info.plist 897 2018/05/06 16:22:26
f:\SanDiskSecureAccessV3_mac.app\Contents\PkgInfo 9 2018/05/06 16:22:26
f:\SanDiskSecureAccessV3_mac.app\Contents\_CodeSignature\CodeResources 12368 2018/05/06 16:22:14
f:\SanDiskSecureAccessV3_mac.app\Contents\Frameworks\QtCore.framework\QtCore 5925200 2018/05/06 16:22:16
f:\SanDiskSecureAccessV3_mac.app\Contents\Frameworks\QtCore.framework\Resources\Info.plist 715 2018/05/06 16:22:16
f:\SanDiskSecureAccessV3_mac.app\Contents\Frameworks\QtCore.framework\Versions\5\QtCore 5925200 2018/05/06 16:22:16
f:\SanDiskSecureAccessV3_mac.app\Contents\Frameworks\QtCore.framework\Versions\5\_CodeSignature\CodeResources 2318 2018/05/06 16:22:16
f:\SanDiskSecureAccessV3_mac.app\Contents\Frameworks\QtCore.framework\Versions\5\Resources\Info.plist 715 2018/05/06 16:22:16
f:\SanDiskSecureAccessV3_mac.app\Contents\Frameworks\QtCore.framework\Versions\Current\QtCore 5925200 2018/05/06 16:22:16
--------------(fp.txt)----------------------------------------
--------------(fp_out.txt)----------------------------------------
20180506,f:\SanDiskSecureAccessV3_win.exe 8599336 2018/05/06 16:22:02
20061110,f:\TeraPad.exe 1185280 2006/11/10 19:39:00
20150829,f:\TeraPad.lzh 529647 2015/08/29 9:21:20
20131001,f:\SanDiskSecureAccessV2.0\DownloadForMac_SanDiskSecureAccessV2.0.pdf 311287 2013/10/01 21:11:04
20140102,f:\SanDiskSecureAccessV2.0\QuickStartGuide_SanDiskSecureAccessV2.0.pdf 2654401 2014/01/02 14:38:36
20180506,f:\SanDiskSecureAccessV3_mac.app\Contents\Info.plist 897 2018/05/06 16:22:26
20180506,f:\SanDiskSecureAccessV3_mac.app\Contents\PkgInfo 9 2018/05/06 16:22:26
20180506,f:\SanDiskSecureAccessV3_mac.app\Contents\_CodeSignature\CodeResources 12368 2018/05/06 16:22:14
20180506,f:\SanDiskSecureAccessV3_mac.app\Contents\Frameworks\QtCore.framework\QtCore 5925200 2018/05/06 16:22:16
20180506,f:\SanDiskSecureAccessV3_mac.app\Contents\Frameworks\QtCore.framework\Resources\Info.plist 715 2018/05/06 16:22:16
20180506,f:\SanDiskSecureAccessV3_mac.app\Contents\Frameworks\QtCore.framework\Versions\5\QtCore 5925200 2018/05/06 16:22:16
20180506,f:\SanDiskSecureAccessV3_mac.app\Contents\Frameworks\QtCore.framework\Versions\5\_CodeSignature\CodeResources 2318 2018/05/06 16:22:16
20180506,f:\SanDiskSecureAccessV3_mac.app\Contents\Frameworks\QtCore.framework\Versions\5\Resources\Info.plist 715 2018/05/06 16:22:16
20180506,f:\SanDiskSecureAccessV3_mac.app\Contents\Frameworks\QtCore.framework\Versions\Current\QtCore 5925200 2018/05/06 16:22:16
--------------(fp_out.txt)----------------------------------------
メーカー別在庫数等集計
7/30 メーカー別在庫数等集計 (クラウドワークスから)
在庫データは、
162-100-0001のように
最初の三ケタが季節コード
次の3ケタがメーカーコード
最後の4ケタが通し番号 この結果をexcelにコピペしてa列でsortして完成
----------------(K_code_sum.bat)---------------------------------
awk32 -fK_code_sum.awk 入力 > 出力
----------------(K_code_sum.bat)---------------------------------
----------------(K_code_sum.awk)---------------------------------
($7 > 0) && (NR > 1) { #企業コード別集計 K_code_sum.awk
n1 = $7
g1 = $3 * $7
k1 = $4 * $7
d1 = $0 " " g1 " " k1
if(/-/) {
gsub(/-/, " ")
m1 = $1 $2
} else m1 = $1
d2[m1] += n1
d3[m1] += g1
d4[m1] += k1
print m1 "*" d1
# print d2[m1] "-" d3[m1] "-" d4[m1]
}
END{
for(i in d2) printf("%s %d %d %d\n", i, d2[i], d3[i], d4[i])
}
----------------(K_code_sum.awk)---------------------------------
----------------(入力)---------------------------------
商品コード 商品名 原価 価格 詳細金額 店舗コード 在庫数
181-116-0052 891482 2360 6900 0 2001 0
181-116-0052 891482 2360 6900 0 2001 1
181-116-0052 891482 2360 6900 0 2001 0
181-116-0052 891482 2360 6900 0 2001 0
181-116-0052 891482 2360 6900 0 2001 0
181-116-0051 891481 2360 6900 0 2001 0
181-116-0051 891481 2360 6900 0 2001 0
181-116-0051 891481 2360 6900 0 2001 2
181-116-0051 891481 2360 6900 0 2001 2
181-116-0051 891481 2360 6900 0 2001 0
181-116-0050 891474 3960 9900 0 2001 0
181-116-0050 891474 3960 9900 0 2001 0
181-116-0049 891293 5200 13000 0 2001 1
181-116-0049 891293 5200 13000 0 2001 0
181-116-0048 891357 8400 21000 0 2001 0
181-116-0048 891357 8400 21000 0 2001 0
181-138-0052 318-596 7400 14800 0 2001 1
181-138-0052 318-596 7400 14800 0 2001 1
181-138-0051 318-595 9500 19000 0 2001 0
181-138-0051 318-595 9500 19000 0 2001 0
----------------(入力)---------------------------------
----------------(出力)---------------------------------
181116*181-116-0052 891482 2360 6900 0 2001 1 2360 6900
181116*181-116-0051 891481 2360 6900 0 2001 2 4720 13800
181116*181-116-0051 891481 2360 6900 0 2001 2 4720 13800
181116*181-116-0049 891293 5200 13000 0 2001 1 5200 13000
181138*181-138-0052 318-596 7400 14800 0 2001 1 7400 14800
181138*181-138-0052 318-596 7400 14800 0 2001 1 7400 14800
181116 6 17000 47500
181138 2 14800 29600
----------------(出力)---------------------------------
検索文字以降の印刷
7/29 検索文字以降の印刷
入力した文字列から 「b」の文字以降を出力する。
match関数は、検索位置をRSTARTに 以降の文字数をRLENGTHに書きこむ。
----------(matchtest.bat)------------------
mawk332 -fmatchtest.bat 入力 > 出力
----------(matchtest.bat)------------------
----------(matchtest.awk)------------------
match($0, /b.*/) {print substr($0, RSTART, RLENGTH)}
----------(matchtest.awk)------------------
----------(入力)------------------
abcdefg
----------(入力)------------------
----------(出力)------------------
bcdefg
----------(出力)------------------
リストをjson?の特殊なフォーマットへ変換
7/27 リストをjson?の特殊なフォーマットへ変換
------(txt2json.bat)-------------------
mawk32 -ftxt2json.awk 入力 > 出力
------(txt2json.bat)-------------------
------(txt2json.awk)-------------------
BEGIN {# リストをjson?の特殊なフォーマットへ変換 txt2json.awk
print "{"
}
{
print "{"
printf("名前:%s\n",$1)
printf("果物:%s\n",$2)
printf("都市:%s\n",$3)
print "}"
}
END {
print "}"
}
------(txt2json.awk)-------------------
------(入力)-------------------
山田 りんご 福岡
田中 ばなな 札幌
花井 いちご 名古屋
伊藤 みかん 静岡
------(入力)-------------------
------(出力)-------------------
{
{
名前:山田
果物:りんご
都市:福岡
}
{
名前:田中
果物:ばなな
都市:札幌
}
{
名前:花井
果物:いちご
都市:名古屋
}
{
名前:伊藤
果物:みかん
都市:静岡
}
}
------(出力)-------------------
特定の文字列削除
7/25 特定の文字列削除
---------(moji_del.bat)--------------------------------
mawk32 -fmoji_del.awk 入力 > 出力
---------(moji_del.bat)--------------------------------
---------(moji_del.awk)--------------------------------
{ # 全から)(]) の部分までを削除する moji_del.awk
fr = 0
d1 = $1
for(i=2; i<=NF; i++)
if($i ~/^全/ || $i ~/\)$/ || $i ~/^\[/ || $i ~/\]$/) {
fr=1;
}
else d1 = d1 " " $i
print d1
}---------(moji_del.awk)--------------------------------
---------(入力)--------------------------------
妖狐×僕SS コミック 全11巻完結セット (ガンガンコミックスJOKER)
ひぐらしのなく頃に 綿流し編 全2巻完結 (ガンガンWINGコミックス) [マーケットプレイスセット]
ウイングマン 全13巻完結(少年ジャンプコミックス) [マーケットプレイス コミックセット]
---------(入力)--------------------------------
---------(出力)--------------------------------
妖狐×僕SS コミック
ひぐらしのなく頃に 綿流し編
ウイングマン
---------(出力)--------------------------------
拡張子別ファイル容量
7/23 拡張子別ファイル容量
---------------(kaku2fv.bat)--------------------
mawk32 -fkaku2fv.awk FullPath.dat > kaku2fv.dat
---------------(kaku2fv.bat)--------------------
---------------(kaku2fv.awk)--------------------
{# 拡張子別ファイル容量を求める kaku2fv.awk
d1 = $0
gsub(/\./, " ")
d2 = ($NF ~/:/) ? NF-3 : NF-2
printf("%5s,%s \n", $d2, $(d2+1))
kei += $(d2+1)
d3[$d2] += $(d2+1)
}
END { print " ********** 拡張子別ファイル合計 **********"
for(i in d3) printf("\t%5s, %15d B\n",i, d3[i])
printf("\t 合計 %15d B\n", kei)
}
---------------(kaku2fv.awk)--------------------
---------------(FullPath.dat)--------------------
C:\tmp3\2013\accessm\accessm.php 12991 2013/12/07
C:\tmp3\2013\accessm\gifcat.php 21599 2002/07/29 0:05:48
C:\tmp3\2013\accessm\jcode-LE.php 22652 2002/10/10
C:\tmp3\2013\accessm\log.dat 122 2013/12/07 15:19:00
C:\tmp3\2013\accessm\readme.txt 4629 2004/04/25 11:38:16
C:\tmp3\2013\accessm\style.css 1280 2004/04/15 17:37:56
C:\tmp3\2013\accessm\ファイルのフルパス取得.vbs 776 2018/07/21 6:18:59
C:\tmp3\2013\accessm\images\0.gif 177 2001/01/18 19:43:46
C:\tmp3\2013\accessm\images\1.gif 175 2001/01/18 19:43:54
C:\tmp3\2013\sinkou2\CheckPassword80.js 8978 2013/06/15 15:29:42
---------------(FullPath.dat)--------------------
---------------(kaku2fv.dat)--------------------
php,12991
php,21599
php,22652
dat,122
txt,4629
css,1280
vbs,776
gif,177
gif,175
js,8978
********** 拡張子別ファイル合計 **********
vbs, 776 B
dat, 122 B
gif, 352 B
php, 57242 B
css, 1280 B
txt, 4629 B
js, 8978 B
合計 73379 B
--------------(kaku2fv.dat)--------------------
更新年別ファイル容量
7/23 更新年別ファイル容量
---------------(fp2fv.bat)--------------------
mawk32 -ffp2fv.awk FullPath.dat > fp2fv.dat
---------------(fp2fv.bat)--------------------
---------------(fp2fv.awk)--------------------
{# フルバス名から更新年別ファイル容量を求める fp2fv.awk
if(NR == 1) {min1 = 10000; max1=0; kei=0}
d1 = $0
gsub(/\//, " ")
d2 = ($NF ~/:/) ? NF-3 : NF-2
if(min1>$d2) min1=$d2
if(max1<$d2) max1=$d2
# printf("%5d,%s %s %s\n", $d2, $(d2-1), min1,max1)
kei += $(d2-1) /1000
d3[$d2] += $(d2-1)/1000
}
END { print " ********** 年別ファイル合計 **********"
for(i=min1; i<=max1; i++) printf("\t%5d, %15d KB\n",i, d3[i])
printf("\t 合計 %15d KB\n", kei)
}
---------------(fp2yfp.awk)--------------------
---------------(FullPath.dat)--------------------
C:\tmp3\2013\accessm\accessm.php 12991 2013/12/07
C:\tmp3\2013\accessm\gifcat.php 21599 2002/07/29 0:05:48
C:\tmp3\2013\accessm\jcode-LE.php 22652 2002/10/10
C:\tmp3\2013\accessm\log.dat 122 2013/12/07 15:19:00
C:\tmp3\2013\accessm\readme.txt 4629 2004/04/25 11:38:16
C:\tmp3\2013\accessm\style.css 1280 2004/04/15 17:37:56
C:\tmp3\2013\accessm\ファイルのフルパス取得.vbs 776 2018/07/21 6:18:59
C:\tmp3\2013\accessm\images\0.gif 177 2001/01/18 19:43:46
C:\tmp3\2013\accessm\images\1.gif 175 2001/01/18 19:43:54
C:\tmp3\2013\sinkou2\CheckPassword80.js 8978 2013/06/15 15:29:42
---------------(FullPath.dat)--------------------
---------------(fp2fv.dat)--------------------
********** 年別ファイル合計 **********
2001, 0 KB
2002, 44 KB
2003, 0 KB
2004, 5 KB
2005, 0 KB
2006, 0 KB
2007, 0 KB
2008, 0 KB
2009, 0 KB
2010, 0 KB
2011, 0 KB
2012, 0 KB
2013, 22 KB
2014, 0 KB
2015, 0 KB
2016, 0 KB
2017, 0 KB
2018, 0 KB
合計 73 KB
---------------(fp2fv.dat)--------------------
更新年とフルパス
7/23 更新年とフルパス
---------------(fp2yfp.bat)--------------------
mawk32 -ffp2yfp.awk FullPath.dat > yFullPath.dat
---------------(fp2yfp.bat)--------------------
---------------(fp2yfp.awk)--------------------
{# フルバス名の頭に更新年を付ける fp2yfp.awk
d1 = $0
gsub(/\//, " ")
d2 = ($NF ~/:/) ? NF-3 : NF-2
printf("%5d,%s\n", $d2, d1)
}
---------------(fp2yfp.awk)--------------------
---------------(FullPath.dat)--------------------
C:\tmp3\2013\accessm\accessm.php 12991 2013/12/07
C:\tmp3\2013\accessm\gifcat.php 21599 2002/07/29 0:05:48
C:\tmp3\2013\accessm\jcode-LE.php 22652 2002/10/10
C:\tmp3\2013\accessm\log.dat 122 2013/12/07 15:19:00
C:\tmp3\2013\accessm\readme.txt 4629 2004/04/25 11:38:16
C:\tmp3\2013\accessm\style.css 1280 2004/04/15 17:37:56
C:\tmp3\2013\accessm\ファイルのフルパス取得.vbs 776 2018/07/21 6:18:59
C:\tmp3\2013\accessm\images\0.gif 177 2001/01/18 19:43:46
C:\tmp3\2013\accessm\images\1.gif 175 2001/01/18 19:43:54
C:\tmp3\2013\sinkou2\CheckPassword80.js 8978 2013/06/15 15:29:42
---------------(FullPath.dat)--------------------
---------------(yFullPath.dat)--------------------
2013,C:\tmp3\2013\accessm\accessm.php 12991 2013/12/07
2002,C:\tmp3\2013\accessm\gifcat.php 21599 2002/07/29 0:05:48
2002,C:\tmp3\2013\accessm\jcode-LE.php 22652 2002/10/10
2013,C:\tmp3\2013\accessm\log.dat 122 2013/12/07 15:19:00
2004,C:\tmp3\2013\accessm\readme.txt 4629 2004/04/25 11:38:16
2004,C:\tmp3\2013\accessm\style.css 1280 2004/04/15 17:37:56
2018,C:\tmp3\2013\accessm\ファイルのフルパス取得.vbs 776 2018/07/21 6:18:59
2001,C:\tmp3\2013\accessm\images\0.gif 177 2001/01/18 19:43:46
2001,C:\tmp3\2013\accessm\images\1.gif 175 2001/01/18 19:43:54
2013,C:\tmp3\2013\sinkou2\CheckPassword80.js 8978 2013/06/15 15:29:42
---------------(yFullPath.dat)--------------------
Tree データからフルパス
7/16 Tree データからフルパス(表示優先コピペ不可)
-----------(t2ap.bat)------------------------------------
mawk32 -ft2fp.awk indat > 出力
-----------(t2ap.bat)------------------------------------
-----------(t2ap.awk)------------------------------------
BEGIN { # Tree データからフルパス t2fp.awk
FS = ","
max1=0
}
{
gsub(/"/,"")
for(i=1; i<=NF; i++)
if($i != "") {
if(max1 < i) max1 = i
d1[NR, i] = $i
d0[i] = $i
}
if(/---/) {
for(j=1; j<max1-1; j++) printf("%s/",d0[j])
print d0[max1-1] d0[max1]
max1 = 0;
}
}
END {
print "\n\n ------(入力データリスト)--------------"
for(k = 1; k<= NR; k++) {
for(j = 1; j<= i; j++)
printf("%s,", d1[k, j])
print""
}
}
-----------(t2ap.awk)------------------------------------
-----------(in.dat)------------------------------------
C:\tmp3,,,,,,
,2007,,,,,
,,files,,,,
,,,"index.html --- 2016/08/16 11:28:08 --- 25,462",,,
,,,"kako2.html --- 2012/07/07 6:41:00 --- 5,966",,,
,,,"kako3.html --- 2012/07/07 6:43:00 --- 4,796",,,
,,,"kako4.html --- 2012/07/07 6:44:00 --- 2,784",,,
,,,"kako5.html --- 2012/07/07 6:44:00 --- 4,420",,,
,,,"kako6.html --- 2012/07/07 6:45:00 --- 2,469",,,
,2013,,,,,
,,accessm,,,,
,,,"accessm.php --- 2013/12/07 12:27:34 --- 12,991",,,
,,,"gifcat.php --- 2002/07/29 0:05:48 --- 21,599",,,
,,,"jcode-LE.php --- 2002/10/10 19:12:04 --- 22,652",,,
,,,log.dat --- 2013/12/07 15:19:00 --- 122,,,
,,,"readme.txt --- 2004/04/25 11:38:16 --- 4,629",,,
,,,"style.css --- 2004/04/15 17:37:56 --- 1,280",,,
,,,images,,,
,,,,0.gif --- 2001/01/18 19:43:46 --- 177,,
,,,,1.gif --- 2001/01/18 19:43:54 --- 175,,
,,,,2.gif --- 2001/01/18 19:44:00 --- 177,,
-----------(in.dat)------------------------------------
-----------(出力)------------------------------------
C:\tmp3/2007/files/index.html --- 2016/08/16 11:28:08 --- 25462
C:\tmp3/2007/files/kako2.html --- 2012/07/07 6:41:00 --- 5966
C:\tmp3/2007/files/kako3.html --- 2012/07/07 6:43:00 --- 4796
C:\tmp3/2007/files/kako4.html --- 2012/07/07 6:44:00 --- 2784
C:\tmp3/2007/files/kako5.html --- 2012/07/07 6:44:00 --- 4420
C:\tmp3/2007/files/kako6.html --- 2012/07/07 6:45:00 --- 2469
C:\tmp3/2013/accessm/accessm.php --- 2013/12/07 12:27:34 --- 12991
C:\tmp3/2013/accessm/gifcat.php --- 2002/07/29 0:05:48 --- 21599
C:\tmp3/2013/accessm/jcode-LE.php --- 2002/10/10 19:12:04 --- 22652
C:\tmp3/2013/accessmlog.dat --- 2013/12/07 15:19:00 --- 122
C:\tmp3/2013/accessm/readme.txt --- 2004/04/25 11:38:16 --- 4629
C:\tmp3/2013/accessm/style.css --- 2004/04/15 17:37:56 --- 1280
C:\tmp3/2013/accessm/images0.gif --- 2001/01/18 19:43:46 --- 177
C:\tmp3/2013/accessm/images1.gif --- 2001/01/18 19:43:54 --- 175
C:\tmp3/2013/accessm/images2.gif --- 2001/01/18 19:44:00 --- 177
-----------(出力)------------------------------------
csvテータのコピー
7/14 csvテータのコピー
--------(csv_print.awk)-------------
BEGIN { # csvテータのコピー csv_print.awk
FS = ","
max1=0
}
{
for(i=1; i<=NF; i++)
if($i != "") {
if(max1 > i) max1 = i
d1[NR, i] = $i
}
}
END {
for(k = 1; k<= NR; k++) {
for(j = 1; j<= i; j++)
printf("%s,", d1[k, j])
print""
}
}--------(csv_print.awk)-------------
更新年にファイルを分けて記録
7/12 更新年にファイルを分けて記録
--------(dr_file.awk)-------------
NF > 7 && NF<10 { #更新年にファイルを分けて記録 dr_file.awk
gsub(/\//, " ")
if(NF==10) i=4
else i=5
# print NR, NF, $4, $5, $i
fn1= $1 $2
gsub(/temp/,"temp/" $i)
fn2= $1 $2
print "copy " fn1 " " fn2
}--------(dr_file.awk)-------------
データ変換 気象庁->米軍
6/30 データ変換 気象庁->米軍
--------(typ_cnv.awk)-------------
年BEGIN {# typ_cnv.awk
d2 = "201806"; fr=-1;
}
{
if(NR<3) print
if(/) { ++n;
gsub(/," ")
gsub(/日/," ")
gsub(/時/," ")
# printf("%2d %d ", $1, $2);
if($1 > 27) d1=$1
ztime()
if($1 == 0) $1 = d1
# printf("%2d %d \n", $1, $2)
$1 = "0" $1; $2 = "0" $2; f
$1 = substr($1, length($1)-1, 2)
$2 = substr($2, length($2)-1, 2)
if(n == 1) {d[1, 0] = 0; st = $2}
else d[n, 0] = (n-1)*24 + $2 - st;
d[n, 1] = sprintf("%s%2s%2s", d2, $1, $2);
d[n, 0] = "000" d[n, 0]
d[n, 0] = "T" substr(d[n, 0], length(d[n, 0] )-2, 3)
if(n == 1) print d[n, 1]
}
if(/北緯/) {
gsub(/\(/," ")
gsub(/度/," ")
$5 = $5*10
d[n, 2] = $5 "N"
}
if(/東経/) {
gsub(/\(/," ")
gsub(/度/," ")
$4 = $4*10
d[n, 3] = $4 "E"
typ = d[n, 0] " " d[n, 2] " " d[n, 3]
print typ
}
}
function ztime(){
if($2 < 9) {
$1--
$2 = $2 +24
}
$2 -= 9
return(0)
}
--------(typ_cnv.awk)-------------
公告一覧変換
6/23 公告一覧変換(表示優先コピペ不可)
--------(30koukoku2.awk)-------------
BEGIN{ #公告一覧変換 30koukoku2.awk
FS = ","
}
{
if(/公告/) {
d1 = $2
d2 = "確認" $6}
if(/年度/ || /H/) {
$1 = ++n
gsub(/ /, ",")
print $0 "," d1 d2}
}
--------(30koukoku2.awk)-------------
マイナビニュース文字変換
6/21 マイナビニュース文字変換 (表示優先コピペ不可)
--------(rdf_mnn.awk)-------------
{ # マイナビニュース文字変換 rdf_mnn.awk
if(/<title>/) {
gsub(/<title>/,"")
gsub(/<\/title>/,""); printf("%s 投稿日",$0)}
if(/<dc:date>/) {
gsub(/<dc:date>/,"")
gsub(/T0/," ")
gsub(/\+09:00/,"")
gsub(/<\/dc:date>/,""); print}
}
--------(rdf_mnn.awk)-------------
多種のHTMLをつくる(10種)
6/7 多種のHTMLをつくる(10種)
--------(make_html.awk)-------------
BEGIN {# 多種のHTMLをつくる(10種) make_html.awk
while (getline < "e:/awk/make_html/head.txt" > 0) d1[++n] = $0
nn=++n
while (getline < "e:/awk/make_html/tail.txt" > 0) d1[++n] = $0
for(i=1; i<11; i++) {# 10種の指定
k = "00" i; l= substr(k, length(k)-2, 3); m="e:/awk/make_html/index" l ".html"; #print l ,m
for(j=1; j<nn; j++) print d1[j] > m
printf(" body { background: beige url(../../sozai/1/bg%s.jpg) repeat; }", l) > m
for(j=nn+1; j
}
}
--------(make_html.awk)-------------
工事の抽出
6/1 工事の抽出
--------(ket_choice.awk)-------------
{ # 公告一覧から公告日、電気および通信設備工事の抽出 ket_choice.awk
if(NF ==3) d1 = $2
if(/電気設/ || /通信設/) print d1 "\n" $0
}
--------(ket_choice.awk)-------------
マイナビニュース変換
5/27 マイナビニュース変換 マイナビニュースのタイトルのみ出力する。
--------(myn.awk)-------------
{# マイナビニュース変換 myn.awk
n1 = NR-19
if(n1%6 == 1) print
}
--------(myn.awk)-------------
四季から月に
5/11 4*6 を 12*2に変換 4s_12m.awk
--------(4s_12m.awk)-------------
{ # 4*6 を 12*2に変換 4s_12m.awk
printf("%s,%s\n%s,%s\n%s,%s\n".$1, $2, $3, $4, $5, $6)
}
--------(4s_12m.awk)-------------
htmlからf_name
5/6 htmlからf_name
--------(html2f.awk)-------------
/^<a/ { #htmlからf_name html2f.awk
gsub(/=/," ")
gsub(/mgs\//," ")
print $4
}
--------(html2f.awk)-------------
降順データ2行分を昇順
5/6
--------(d2u.awk)-------------
{ #降順データ2行分を昇順にする d2u.awk
d1[NR] = $0
}
END {
for(i=NR; i>=1; i--)
if(i%2 == 1) {
print d1[i]
print d1[i+1]
}
print ""
}
--------(d2u.awk)-------------
氏名(旧姓)
4/29 氏名と旧姓 を 氏名(旧姓) に 変換
--------(name.bat)-------------
mawk32 -fname2.awk name1.txt > name2.txt
--------(name.bat)-------------
--------(name2.awk)-------------
{ # 氏名と旧姓 を 氏名(旧姓) に 変換 name2.awk
printf(NF >1 ? "%s(%s)\n" : "%s\n" , $1, $2)
}
--------(name2.awk)-------------
--------(name1.txt)-------------
石川水穂
犬塚和美 増田
岩井汎子 尾茂田
魚住和晃
遠藤なお子 淵田
以下略
--------(name1.txt)-------------
--------(name2.txt)-------------
石川水穂
犬塚和美(増田)
岩井汎子(尾茂田)
魚住和晃
遠藤なお子(淵田)
以下略
--------(name2.txt)-------------
IPアドレスのみ抽出印刷
4/7 IPアドレスのみ抽出印刷
----------(IP_choi.awk)-------------------------------------------------
{ # IPアドレスのみ抽出印刷 IP_choi.awk
match($0, /[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+/)
print substr($0, RSTART, RLENGTH)
}
----------(IP_choi.awk)-------------------------------------------------
副所長に事務所名を付加
4/3 副所長に事務所名を付加
----------(add_ofi.awk)-------------------------------------------------
BEGIN { 副所長に事務所名を付加 add_ofi.awk
FS = ","
}
{
if(/事務所長/) {
gsub(/事務所長/,"",$1); s1 = $1
} else {
if(/副所長/) $0 = s1 $0
}
}
----------(add_ofi.awk)-------------------------------------------------
------------(入力)---------------------------------------
名古屋港湾事務所長,池田 哲郎,イケダテツロウ
副所長(事),山際 明彦,ヤマギワアキヒコ
副所長(技),恩田 充,オンダミツル
副所長(技),山田 誠,ヤマダマコト
統括建設管理官,浅倉 弘敏,アサクラヒロトシ
三河港湾事務所長,平澤 興,ヒラサワコウ
副所長(技),老平 武弘,オイダイラタケヒロ
四日市港湾事務所長,佐藤 誠,サトウマコト
副所長(事),田中 亮,タナカリョウ
副所長(技),野口 弘之,ノグチヒロユキ
名古屋港湾空港技術調査事務所長,杉 栄一郎,スギエイイチロウ
副所長(技),日置 幸司,ヒオキコウジ
------------(入力)---------------------------------------
------------(出力)---------------------------------------
名古屋港湾事務所長,池田 哲郎,イケダテツロウ
名古屋港湾副所長(事),山際 明彦,ヤマギワアキヒコ
名古屋港湾副所長(技),恩田 充,オンダミツル
名古屋港湾副所長(技),山田 誠,ヤマダマコト
統括建設管理官,浅倉 弘敏,アサクラヒロトシ
三河港湾事務所長,平澤 興,ヒラサワコウ
三河港湾副所長(技),老平 武弘,オイダイラタケヒロ
四日市港湾事務所長,佐藤 誠,サトウマコト
四日市港湾副所長(事),田中 亮,タナカリョウ
四日市港湾副所長(技),野口 弘之,ノグチヒロユキ
名古屋港湾空港技術調査事務所長,杉 栄一郎,スギエイイチロウ
名古屋港湾空港技術調査副所長(技),日置 幸司,ヒオキコウジ
------------(出力)---------------------------------------
平成30年4月1日付け中部整備局幹部 超高速簡易データベース
津市土木一式発注情報抽出
3/27 津市土木一式発注情報抽出
----------(tsu_choi_c.awk)-------------------------------------------------
{ # 津市土木一式発注情報抽出 tsu_choi_c.awk
if(/発注情報/) a1 =$0
if(/土木一式/ || fr == 1) {
print a1 "--" $0
fr =1
}
if(/PDF/) fr = 0
}
----------(tsu_choi_c.awk)-------------------------------------------------
http://www.info.city.tsu.mie.jp/www/genre/1100000000196/index.html
----------(結果h27〜h29)-------------------------------------------------
発注情報(平成27年4月6日)--土木一式 久居 美杉 B・A2
発注情報(平成27年4月6日)-- A1 平成27年度環新第2号
発注情報(平成27年4月6日)-- (仮称)下之川住民交流施設整備に伴う造成工事 PDF PDF エクセル −
発注情報(平成27年4月6日)--土木一式 久居 久居・一志
発注情報(平成27年4月6日)-- 白山 D・C・B
発注情報(平成27年4月6日)-- A2・A1 平成26年度農基災補第92号
発注情報(平成27年4月6日)-- 榊原町地内農業用施設災害復旧工事
発注情報(平成27年4月6日)-- (その7) PDF PDF エクセル −
(省略)
発注情報(平成30年2月26日)--土木一式 久居 美杉 C・B
発注情報(平成30年2月26日)-- A2・A1 平成29年度南道災補第9号
発注情報(平成30年2月26日)-- 市道山口山本線及び普通河川戸木川災害復旧工事 PDF PDF エクセル −
発注情報(平成30年2月26日)--土木一式 久居 美杉 B・A2
発注情報(平成30年2月26日)-- A1 平成29年度南道災補第8号
発注情報(平成30年2月26日)-- 市道下太郎生八知線ほか2線災害復旧工事 PDF PDF エクセル −
----------(結果)-------------------------------------------------
結果...長文注意
SpamデータからIP
3/8
-----------(getIP.awk)--------------------------------
{# SpamデータからIPを抽出 getIP.awk
gsub(/
/,"\n")
if(/^[0-9]/ && NF > 4) print $5
}
-----------(getIP.awk)--------------------------------
4桁連番-6文字以降印刷
3/6 4桁連番-6文字以降印刷
-----------(4ren6prn.awk--------------------------------
{ # 4桁連番-6文字以降印刷 4ren6prn.awk
printf("%4d-%s\n", NR, substr($0, 6))
}
-----------(4ren6prn.awk--------------------------------
分割したデータから連番を付けた結果

バナーサイズ一括指定
2/24 バナーサイズ一括指定

発注見込み整形フィルター
2/23 発注見込み整形フィルター
-----------(hm_filter.awk)--------------------------------
{# 発注見込み整形フィルター hm_filter.awk
gsub(/^発注機関名/,"\n\n発注機関名")
gsub(/^国土交通省/,"\n国土交通省")
gsub(/^農林水産省/,"\n農林水産省")
gsub(/^財務省/,"\n財務省")
gsub(/^防衛省/,"\n防衛省")
gsub(/^中日本/,"\n中日本")
gsub(/^第四管区/,"\n第四管区")
if(/県 / && /課/) $0 = "\n" $0
if(/県 / && /所/) $0 = "\n" $0
if(/市 / && /課/) $0 = "\n" $0
if(/町 / && /課/) $0 = "\n" $0
printf("%s",$0)
}
-----------(hm_filter.awk)--------------------------------
コピペ元

元データの発注見込みのコピペ(三重県内)
発注見込みのコピペ
中勢地区フィルター実行後
実行後
北勢地区フィルター実行後
実行後
南勢地区フィルター後
実行後
伊賀地区フィルター後
実行後
東紀州地区フィルター後
実行後
愛知・岐阜・静岡・長野(中部管内)の発注見込み
平成30年度抽出用ppi
2/21
-----------(30sel.awk)--------------------------------
{# 平成30年度抽出用 ppi 30sel.awk
if(/[0-9]月/) print
if(/30年/) print
if(/30年/) print
}
-----------(30sel.awk)--------------------------------
実行結果編集したもの 1月29日と30日に29年度を排除している。

「-」を区切りに連番に
2/10 「-」を区切りに連番に
-----------(ren_num.awk)--------------------------------
BEGIN { # 「-」を区切りに連番に ren_num.awk
FS = "-"
}
{
printf(" %4d-%s\n",++n, $2)
}
-----------(ren_num.awk)--------------------------------
工事発注公告のソースから設備を抽出した表に
2/9 工事発注公告のソースから設備を抽出した表に
-----------(select_setu2.awk)--------------------------------
BEGIN{# 工事発注公告のソースから設備を抽出した表にする select_setu2.awk
m = 0
}
/N ITIRAN/ {#ppi_setu.awk 設備のPPI
if(/ITIRAN1/) d1[m,1] = $0
if(/ITIRAN2/) d1[m,2] = $0
if(/ITIRAN3/) d1[m,3] = $0
if(/ITIRAN4/) d1[m,4] = $0
if(/ITIRAN5/) {
d1[m,5] = $0
if(m == 0) ++m
if(/設備/) ++m
}
}
END {
print "<HTML>"
print "<HEAD><TITLE>setu21</TITLE></HEAD>"
print "<BODY>"
print "<table border=\"2\">\n\n"
for(i=0; i<m; i++){
print"<tr>"
for(j=1; j<=5; j++)
print d1[i,j]
print"</tr>\n"
}
print ""
print "</table>"
print "</BODY>"
print "</HTML>"
}
-----------(select_setu2.awk)--------------------------------
実行サンプル
入力データ 平成30年2月9日工事
上記から実行結果
工事発注公告のソースから設備を抽出
2/6 工事発注公告のソースから設備を抽出
-----------(select_setu.awk)--------------------------------
BEGIN{# 工事発注公告のソースから設備を抽出 select_setu.awk
m = 0
}
/N ITIRAN/ {#ppi_setu.awk 設備のPPI
if(/ITIRAN1/) d1[m,1] = $0
if(/ITIRAN2/) d1[m,2] = $0
if(/ITIRAN3/) d1[m,3] = $0
if(/ITIRAN4/) d1[m,4] = $0
if(/ITIRAN5/) {
d1[m,5] = $0
if(m == 0) ++m
if(/設備/) ++m
}
}
END {
for(i=0; i
for(j=1; j<=5; j++)
print d1[i,j]
print"
}
print ""
}
-----------(select_setu.awk)--------------------------------
シャープの公式2
2/1 シャープの公式2
-----------(sp2.awk)--------------------------------
BEGIN { #シャープの公式 円周率の計算 sp2.awk
n=20
for(k=1; k<=n; k++) {
q=(-1)^(k-1)
i=3^((k-1)/2)
r=((2*k-1)*i*i)
s=s+q/r
t=2*sqrt(3)*s
t2=2*sqrt(3)*q/r
if(t != tt)
printf("n=%2d ... %2.9f %2.9f \n", k, t, t2)
tt=t
}
}
-----------(sp2.awk)--------------------------------
-----------(結果)--------------------------------
n= 1 ... 3.464101615 3.464101615
n= 2 ... 3.079201436 -0.384900179
n= 3 ... 3.156181472 0.076980036
n= 4 ... 3.137852892 -0.018328580
n= 5 ... 3.142604746 0.004751854
n= 6 ... 3.141308785 -0.001295960
n= 7 ... 3.141674313 0.000365527
n= 8 ... 3.141568716 -0.000105597
n= 9 ... 3.141599774 0.000031058
n=10 ... 3.141590511 -0.000009263
n=11 ... 3.141593305 0.000002794
n=12 ... 3.141592454 -0.000000850
n=13 ... 3.141592715 0.000000261
n=14 ... 3.141592635 -0.000000080
n=15 ... 3.141592660 0.000000025
n=16 ... 3.141592652 -0.000000008
n=17 ... 3.141592654 0.000000002
n=18 ... 3.141592653 -0.000000001
n=19 ... 3.141592654 0.000000000
n=20 ... 3.141592654 -0.000000000
-----------(結果)--------------------------------
シャープの公式
1/31 シャープの公式
-----------(sp.awk)--------------------------------
BEGIN { #シャープの公式 円周率の計算 sp.awk
n=20
for(k=1; k<=n; k++) {
q=(-1)^(k-1)
i=3^((k-1)/2)
r=((2*k-1)*i*i)
s=s+q/r
t=2*sqrt(3)*s
if(t != tt)
printf("n=%2d ... %2.8f \n", k, t)
tt=t
}
}
-----------(sp.awk)--------------------------------
-----------(結果)--------------------------------
n= 1 ... 3.46410162
n= 2 ... 3.07920144
n= 3 ... 3.15618147
n= 4 ... 3.13785289
n= 5 ... 3.14260475
n= 6 ... 3.14130879
n= 7 ... 3.14167431
n= 8 ... 3.14156872
n= 9 ... 3.14159977
n=10 ... 3.14159051
n=11 ... 3.14159330
n=12 ... 3.14159245
n=13 ... 3.14159272
n=14 ... 3.14159263
n=15 ... 3.14159266
n=16 ... 3.14159265
n=17 ... 3.14159265
n=18 ... 3.14159265
n=19 ... 3.14159265
n=20 ... 3.14159265
-----------(結果)--------------------------------
htmlからurlの抽出
1/11 htmlからurlの抽出
---------------(html2url.awk)-----------------------
/image/ { htmlからurlの抽出 html2url.awk
gsub(/><\/td>/,"")
gsub(/=/," ")
print "http://dob.web2.jp/2018/hakkutu/" $5
}
---------------(html2url.awk)-----------------------
そらまめデータ抽出
1/1
---------------(sora_conv3.awk 2017-2018年版)-----------------------
2017/ || /2018/ {# sora_conv3.awk 2017-2018年版
if(a3 != $3) {
a3 = $3
dat1[++n, 0] = $1 "/" $2 "/" $3
dat2[n, 0] = $1 "/" $2 "/" $3
dat3[n, 0] = $1 "/" $2 "/" $3
}
dat1[n, $4*1] = $15
dat2[n, $4*1] = $8
dat3[n, $4*1] = $10
}
END {
print"津立成小学校 http://soramame.taiki.go.jp/DataList.php?MstCode=24213010"
print"大気汚染物質広域監視システム(そらまめ君)ホームページからPM2.5(μg/m3)1日平均値が35μg/m3以下\n"
title()
for(i=1; i<=n; i++) {
printf("%s",dat1[i, 0])
for(j=1; j<=24; j++)
printf("%5s",dat1[i, j])
print ""
}
print"\n\n大気汚染物質広域監視システム(そらまめ君)ホームページからNOX(ppm)0.04ppmから0.06ppmまでのゾーン内又はそれ以下\n"
title()
for(i=1; i<=n; i++) {
printf("%s",dat2[i, 0])
for(j=1; j<=24; j++)
printf("%6s",dat2[i, j])
print ""
}
print"\n\n大気汚染物質広域監視システム(そらまめ君)ホームページからOX(ppm)0.06ppm以下\n"
title()
for(i=1; i<=n; i++) {
printf("%s",dat3[i, 0])
for(j=1; j<=24; j++)
printf("%6s",dat3[i, j])
print ""
}
}
function title() {
printf("年/月/日 ")
for(j=1; j<=24; j++) printf(" %2s時", j)
print ""
}
---------------(sora_conv3.awk 2017-2018年版)-----------------------