目次 に戻る

2006 awk intro

GNU Awk 3.0.6 + multi-byte extension 1.15

出納簿の計算

データー ファイルを作成 、内容は 以下のもの

Pmt> cat 43_data 
1000
125     Market  125.45
126     Hardware Store  34.95
127     Video Store     7.45
128     Book Store      14.32
129     Gasoline        16.10

次に awk にて 取り扱うための その 内容を 記載した スクリ プト ”013_awkscr”を 作成する

013_awkscr

Pmt> cat 013_awkscr 
# 013_awkscr
BEGIN { FS = "\t" }

#1 Expect the first record to have the starting balance.
NR == 1 { print "Beginning Balance: \t " $1
balance = $1
next                    # get next recode and start over
}

# Apply to each check recode, subtracting amount from balance.
{ print $1,$2,$3
print balance -= $3
}

試行

Pmt> awk -f 013_awkscr 43_data 
Beginning Balance:       1000
125 Market 125.45
874.55
126 Hardware Store 34.95
839.6
127 Video Store 7.45
832.15
128 Book Store 14.32
817.83
129 Gasoline 16.10
801.73

備考

参考通りに やっても そうですか と いう事ですので

Pmt> cat 44_data 
10000
103     市場 野菜       325
104     電気店 ハードディスク   4500
105     レンタル 明日になれば   320
106     本屋 えらでティ津是螺る土       2560
107     給油 廃屋       1290
Pmt> awk -f 013_awkscr 44_data 
Beginning Balance:       10000
103 市場 野菜  325
9675
104 電気店 ハードディスク 4500
5175
105 レンタル 明日になれば 320
4855
106 本屋 えらでティ津是螺る土 2560
2295
107 給油 廃屋 1290
1005
Pmt> bc -q
10000-325
9675
9675-4500
5175
4855-2560
2295
2295-1290
1005

うううーーん 日本語が 使えるのか ”美玖呂祖父徒 の 得句競鏤”見たいに 行けるかな? 参考に データーの 形式を 見ておこう。あくまで FS は ” \t”であることを 確認しておこう

Pmt> sed  -n l 43_data 
1000$
125\tMarket\t125.45$
126\tHardware Store\t34.95$
127\tVideo Store\t7.45$
128\tBook Store\t14.32$
129\tGasoline\t16.10$
Pmt> sed  -n l 44_data 
10000$
103\t\033$B;T>l\033(B \033$BLn:Z\033(B \t325$
104\t\033$BEE5$E9\033(B \033$B%O!<%I%G%#%9%/\033(B\t4500$
105\t\033$B%l%s%?%k\033(B \033$BL@F|$K$J$l$P\033(B\t320$
106\t\033$BK\\20\033(B \033$B$($i$G%F%#DE@'Mf$kEZ\033(B\t2560$
107\t\033$B5kL}\033(B \033$BGQ20\033(B\t1290$
Pmt> sed -e l 44_data 
10000$
10000
103\t\033$B;T>l\033(B \033$BLn:Z\033(B \t325$
103     市場 野菜       325
104\t\033$BEE5$E9\033(B \033$B%O!<%I%G%#%9%/\033(B\t4500$
104     電気店 ハードディスク   4500
105\t\033$B%l%s%?%k\033(B \033$BL@F|$K$J$l$P\033(B\t320$
105     レンタル 明日になれば   320
106\t\033$BK\\20\033(B \033$B$($i$G%F%#DE@'Mf$kEZ\033(B\t2560$
106     本屋 えらでティ津是螺る土       2560
107\t\033$B5kL}\033(B \033$BGQ20\033(B\t1290$
107     給油 廃屋       1290

こういう感じです、この使いかた

にゃんたろう 拝!
GNU Awk 3.0.6 + multi-byte extension 1.15
2007年 1月11日 (木) 22:01:21 JST 作成


目次 に戻る

Copyright © 2004.-2007. nyantarou All Rights Reserved.