TOP ƒJƒeˆê—— ƒXƒŒˆê—— 100`I‚Ü‚Å 2chŒ³ 휈˗Š
yPHPz‰º‚ç‚Ë‚¥Ž¿–â‚Í‚±‚±‚É 9
C++‘Š’kŽº part136
ƒŠƒtƒ@ƒNƒ^ƒŠƒ“ƒO‚ð‚½‚¾‚̃R[ƒhC³‚ÆŽv‚Á‚Ä‚él‚Ö
ƒIƒiƒIƒiŠJ”­ƒvƒƒWƒFƒNƒg
ƒpƒ`ƒ“ƒRAƒpƒ`ƒXƒ‚ÌŠî”Ղ̃vƒƒOƒ‰ƒ€ 2
yAlloyzŒ`Ž®Œ¾Œê‚É‚æ‚éŽd—l‹LqyVDMz
AndroidƒvƒƒOƒ‰ƒ~ƒ“ƒOŽ¿–âƒXƒŒ revision54
ƒvƒƒOƒ‰ƒ~ƒ“ƒO‚Ì‚¨‘èƒXƒŒ Part17
yTDDzƒeƒXƒg‹ì“®ŠJ”­yTestFirstz
¿°½º°ÄÞ Î½Ã¨Ý¸Þ‘‡yGitHub,GitLab,Bitbucket“™z

awk‚ɂ‚¢‚ÄŒê‚éƒXƒŒ $2


1 F2007/02/23 ` ÅIƒŒƒX F2019/08/08
•…‚Á‚Ä‚à‘âH éuûû‚à˜V‚¢‚Ä‚Íém”n‚É—ò‚éH
ŽOl‚Ì׊w‚ª¶‚Ýo‚µ‚½ƒXƒNƒŠƒvƒgŒ¾ŒêAWK‚ɂ‚¢‚ÄŒê‚éƒXƒŒ
Ÿ ‘OƒXƒŒ
awk‚ɂ‚¢‚ÄŒê‚éƒXƒŒ
http://pc10.2ch.sc/test/read.cgi/tech/1023556171/
Ÿ ŠÖŒWƒXƒŒ
ƒVƒFƒ‹ƒXƒNƒŠƒvƒg‘Š’kŽº
http://pc10.2ch.sc/test/read.cgi/tech/1112553783/
AWK‚ÅCGI
http://pc10.2ch.sc/test/read.cgi/php/1171804314/
ysedzƒVƒFƒ‹ƒXƒNƒŠƒvƒg‘‡@LINUX Part2yawkz
http://pc10.2ch.sc/test/read.cgi/linux/1154578200/
Ÿ ŽQl
The AWK Programming Language (Brian Kernighan)F
ttp://cm.bell-labs.com/cm/cs/awkbook/index.html
GAWK (GNU Projedt):
ttp://www.gnu.org/software/gawk/

2 F
awking shoes

3 F
ƒI[ƒN
ƒI[ƒN
ƒI[ƒN
@‰œ‚³‚ñ

4 F
‘½‚­‚ÍŒê‚é‚Ü‚¢B
Mawk - Mike' AWK
http://gnuwin32.sourceforge.net/packages/mawk.htm

5 F
‚¢‚⑽‚­‚ðŒê‚Á‚Ä‚­‚ê

6 F
ƒ[ƒJƒ‹•Ï”AB

7 F
ƒNƒ[ƒWƒƒ‚ðŽ‚Á‚½awkŽÀ‘•‚Æ‚©‚È‚¢‚©‚Ë

8 F
ƒRƒ}ƒ“ƒhƒvƒƒ“ƒvƒg‚Å‚¿‚å‚¿‚å‚Á‚ÆŽg‚¤‚±‚Æ‚Í•p”É‚É‚ ‚邯‚Ç
‹C‡‚¢“ü‚ê‚ăvƒƒOƒ‰ƒ~ƒ“ƒO‚·‚é‚Á‚Ä‚Ì‚ÍÅ‹ß–³‚­‚È‚Á‚½B

9 F
>>7
‘OƒXƒŒ‚ÉObjective awk‚ªŽÀÝ‚·‚é‚©‚̂悤‚Șb‚ª‚ ‚邪ƒlƒ^‚¾‚낤B
ŽÀ—p«‚𖳎‹‚·‚ê‚ÎawkŽ©g‚Å‘‚­‚±‚Æ‚à•s‰Â”\‚Å‚Í‚È‚¢‚©‚à‚µ‚ê‚È‚¢B
‚¨–]‚݂Ɉê”Ô‹ß‚¢ŽÀ‘•‚ÍAŽÀ‚ÍJavaScript‚Å‚Í‚È‚¢‚©‚ÆB
http://developer.mozilla.org/ja/docs/New_in_JavaScript_1.7

10 F
ƒgƒbƒpƒ“‚̃vƒƒOƒ‰ƒ~ƒ“ƒOŒ¾ŒêAWK‚ªƒuƒbƒNƒIƒt‚Å105‰~‚Å’@‚«”„‚ç‚ê‚Ä‚é‚Ì‚ðŒ©‚Ä
‚È‚ñ‚©”ß‚µ‚¢‹C•ª‚É‚È‚Á‚½

11 F
>>10
‰´‚àƒIƒ‰ƒCƒŠ[‚Ìused & awk ƒvƒƒOƒ‰ƒ~ƒ“ƒOv–{‚ªA}‘ŠÙ‚Ìu–³—¿‚ÅŽ‚Á‚Ä‚¯[’Iv
‚É‚ ‚Á‚½‚Ì‚ÅA‘¦ GET ‚µ‚½B‚Ü‚ A‚©‚È‚èŒÃ‚¢–{i1991 ”Nj‚¾‚¯‚ÇA“à—e‚Í‚¢‚¢–{‚¾B
’艿 \3800 ‰~‚̃oƒJ‚–{‚ÅA ‚½‚Ô‚ñAV‘‚Å‚Í”ƒ‚í‚È‚©‚Á‚½‚¾‚낤B
ƒgƒbƒpƒ“‚̃vƒƒOƒ‰ƒ~ƒ“ƒOŒ¾ŒêAWK‚Á‚ÄA‚¢‚‚²‚ë‚Ì–{‚¾‚Á‚½‚¯B‚Æ‚è‚ ‚¦‚¸A105‰~‚È‚ç
—~‚µ‚¢‚Á‚·B

12 F
>>11
Ô‚¢•\Ž†‚Ì‘æ‚P”Å‚¾‚Ë‚«‚Á‚ÆB
—΂̕\Ž†‚Ì‘æ‚Q”Å‚ªŽèŒ³‚É‚ ‚邯‚ÇAgawk‚ÅŠg’£‚³‚ê‚Ä‚¢‚é
³‹K•\Œ»‚Ìà–¾‚Æ‚©‘‚¦‚Ä‚Ä‘æ‚Q”Å‚Ì‚Ù‚¤‚ª‚¨Š©‚ßB
‚¿‚Ȃ݂ɒ艿‚S‚P‚O‚O‰~‚È‚èB

13 F
>>12
> Ô‚¢•\Ž†‚Ì‘æ‚P”Å‚¾‚Ë‚«‚Á‚ÆB
‚»‚¤A‚»‚ê‚»‚êB ‚Ù‚ñ‚ÅA
gensub ‚ª‚È‚¢B‚à‚¿‚ë‚ñA
/inet/..... |& ....@‚à‚È‚¢B
Å‹ßA/inet/..... |& ....@‚ª‚ ‚éigawk3.1 ‚©‚çj‚±‚Æ‚ð’m‚Á‚ÄAgawk ‚ðŒ©’¼‚µ‚Ä‚¢‚éB
Žg‚¢ŽÌ‚ẴvƒƒOƒ‰ƒ€‚Í gawk ‚É`!!B

14 F
>>11
ƒgƒbƒpƒ“‚Ìʼn‚Ì–{‚È‚çŠm‚©1990”N‚Ìt ‚¾‚Á‚½‚ÆŽv‚¤B
ˆê‰žnawkƒŒƒxƒ‹‚Ì‹Lq‚Ì‚Í‚¸‚È‚ñ‚ÅAgawk‚È‚ñ‚©‚̌ŗL‚Ì
Šg’£‚𜂯‚Î\•ªŽg‚¦‚é‚Å‚µ‚åB
105‰~‚Íc‚¿‚Ɣ߂µ‚¢‚¯‚Ç‚¢‚¢l‚ÉE‚í‚ê‚Ä—~‚µ‚¢‚Ë‚¦B

15 F
>>13
gawk‚Ì /inet Šg’£‚Á‚ăCƒ}ƒCƒ`Žg‚¢‚Â炭‚Ë?
”Ä—p“I‚È‚Ì‚©‚à‚µ‚ê‚È‚¢‚¯‚ÇA‚¨ŽèŒy‚ÉhttpŒo—R‚Åwebƒy[ƒW‚Ì
“à—eŽæ‚ê‚ê‚΂¢‚¢‚Á‚Ä‚Æ‚«‚É‹Lq‚ª–Ê“|B

16 F
>>15
’Pƒ‚É
gawk '{print $0}' http://foo.org/index.html
‚Æ‚©‚ŃV[ƒ€ƒŒƒX‚ɃAƒNƒZƒX‚Å‚«‚é‚Æ‚¢‚¤‚Ù‚¤‚ª•Ö—˜‚È‚Ì‚©‚È?

17 F
http://www.gnu.org/software/gawk/manual/gawkinet/gawkinet.html#Web-page
‚©‚çAŠÈ’P‚È—áB
BEGIN {
RS = ORS = "\r\n"
HttpService = "/inet/tcp/0/www.yahoo.com/80"
print "GET http://www.yahoo.com" |& HttpService
while ((HttpService |& getline) > 0)
print $0
close(HttpService)
}

18 F
awk‚ÅSQL‚Ìleftjoin‚Ý‚½‚¢‚È‚±‚Æ‚Å‚«‚éH

19 F
>>17
‚È‚ñ‚¶‚Ⴑ‚è‚áB
wget -O - http://www.yahoo.com/ ‚Ìo—Í‚ð“Ç‚Þ‚Ì‚Æ‘S‘R•Ï‚í‚ç‚ñ‚ÈB

20 F
>>16
‚Ü‚  wget‚Æ‚©curlŽg‚Á‚Ä•W€“ü—Í‚©‚çŽæ‚ê‚æ‚Æ‚¢‚¤˜b‚à‚ ‚é‚©‚à‚µ‚ê‚È‚¢‚¯‚ÇA
http://‚Ù‚°‚Ù‚° ‚Í“Á•Êˆµ‚¢‚µ‚Ä‚­‚ê‚é‚Æ‚¤‚ꂵ‚¢‚È‚ ‚ÆŽv‚Á‚Ä‚éB
‚Ü‚ HTML“Ç‚ñ‚Å‚»‚ê‚ð‰ðÍ‚·‚éŽèŠÔ‚ªŽŸ‚É‘Ò‚Á‚Ă邯‚Ç‚³w

21 F
ƒGƒ“ƒR[ƒfƒBƒ“ƒO‘Ήž‚Æ‚©FXl‚¦‚é‚ÆAawk‚ÅHTML‚ðˆ—‚µ‚悤‚Æ‚·‚é‚Ù‚¤‚ª
–³—‚ª‚ ‚銴‚¶B
‘f’¼‚ÉP‚Å‚Í‚¶‚܂錾Œê‚Æ‚©Žg‚Á‚Æ‚¯‚ÎH‚Ý‚½‚¢‚ÈB

22 F
>>21
P‚Æ‚©RŽg‚¦‚Á‚Ä‚Ì‚Í‚Ü‚ ‚»‚¤‚È‚ñ‚¾‚¯‚ÇAHTML‚̑Ó–«‚Æ‚©ƒGƒ“ƒR[ƒfƒBƒ“ƒO‚ð‹C‚É‚µ‚È‚¢‚Å
‚¢‚¢Žg‚¢“¹‚Ål‚¦‚Ä‚½(ŒÂl“I‚É‚»‚¤‚¢‚¤Žù—v‚ª‚ ‚é)‚Ì‚Å‚ËB
HTML‚ÉŠÖ‚µ‚Ä‚Í‚«‚¿‚ñ‚Æ‚µ‚½ƒhƒLƒ…ƒƒ“ƒg‚È‚çxgawk‚Å‚Ç‚¤‚É‚©‚È‚é?


23 F
ÌAFortranAC‚®‚ç‚¢‚µ‚©’m‚ç‚È‚©‚Á‚½ŽžA
u‚¦‚ÁA‚±‚ñ‚È”s‚ÅŒvŽZo—ˆ‚é‚ÌHv
uƒvƒƒOƒ‰ƒ€“à‚Ƀtƒ@ƒCƒ‹–¼‘‚©‚È‚­‚Ä—Ç‚¢‚ÌHv
u‚±‚Ì”s‚ÅA‚·‚ׂẴf[ƒ^‚ÌŒvŽZ‚µ‚Ä‚­‚ê‚é‚ÌHv
‚Á‚ÄA‹Á‚«‚È‚ª‚ç—Fl‚É‹³‚¦‚Ä‚à‚ç‚¢‚Ü‚µ‚½B
¡‚È‚çAExcel‚Å‚·‚é‚悤‚ÈŒvŽZ‚Í‚·‚ׂÄawk‚Å‚µ‚Ä‚Ü‚µ‚½B
ƒAƒXƒL[‚©‚ç256”{ƒVƒŠ[ƒY‚ªo‚½‚®‚ç‚¢‚¾‚©‚ç
’–Ú‚ÌŒ¾Œê‚¾‚Á‚½‚ñ‚¾‚æ‚ËB


24 F
Visicalc‚Æ1-2-3‚Íawkƒu[ƒ€‚æ‚èÌ‚©‚ç‚ ‚Á‚½‚ñ‚¾‚¯‚Ç‚ËB
UNIX‚Á‚ĈӊO‚ƌ­‚È‚¢‚ñ‚¾‚æ‚ËB

25 F
>10
”­sŠ‚ªV‹IŒ³ŽÐ‚ÌuƒvƒƒOƒ‰ƒ~ƒ“ƒOŒ¾ŒêAWKv‚ð2005”N‚ɒ艿3465‰~iÅžj‚Å”ƒ‚¢‚Ü‚µ‚½B
‰œ•t‚Éu–{‘‚Í1989”N11ŒŽ‚ÉŠ”Ž®‰ïŽÐƒgƒbƒpƒ“‚æ‚è”­s‚³‚ê‚Ü‚µ‚½B‚±‚Ì“xAŠ”Ž®‰ïŽÐV‹IŒ³ŽÐ‚æ‚èAŒ´o”ÅŽÐA–óŽÒ‚Ì‹–‰Â‚𓾂ÄÄ”­s‚¢‚½‚µ‚Ü‚µ‚½Bv‚Æ‘‚©‚ê‚Ä‚¢‚Ü‚·B

26 F
V‹IŒ³ŽÐ‚Á‚ÄRPG‚Ì–{‚µ‚©o‚µ‚Ä‚È‚¢‚ÆŽv‚Á‚Ä‚½‚©‚çˆÓŠO‚¾B

27 F
‘åÌ‚É’Ê‚Á‚Ä‚½‚ê‚Ì“y–ØHŠw‰È‚É‚Íawk‚ÌŽö‹Æ‚ª‚ ‚Á‚½
ŽÀŒ±‚̃f[ƒ^ˆ—‚É‚Å‚àŽg‚Á‚Ä‚Ù‚µ‚©‚Á‚½‚ñ‚¾‚낤

28 F
>24
awkƒu[ƒ€‚ÍA¼—‚Ɖ½”N ‚Å‚µ‚傤‚©?

29 F
>>28
DOS––ŠúB256”{–{‚ªo‚½93”N ‚ªƒs[ƒN‚Å‚ÍB
Œã‚ÌPerl‚Æ‚Í”äŠr‚É‚È‚ç‚È‚¢ƒvƒ`ƒu[ƒ€‚¾‚¯‚ÇB

30 F
>29
Œä‰ñ“š‚ ‚肪‚Æ‚¤‚²‚´‚¢‚Ü‚·B

31 F
Å‹ß‚Ìî•ñ‚ÍA‚±‚¿‚çI
ttp://gauc.no-ip.org/

32 F
‹SŽÔawk‚ð’N‚©ì‚Á‚Ä‚­‚ê‚È‚¢‚©‚È[

33 F
>>32
‚¢‚¢‚±‚ÆŒ¾‚¤‚Ë‚¥B
Ž^¬!

34 F
‚ ‚ƃ[ƒJƒ‹•Ï”‚ª—~‚µ‚¢‚È

35 F
function‚Ì’†‚̓[ƒJƒ‹•Ï”‚É‚È‚é‚æB

36 F
‚¢‚‚©‚çH–¢‚¾‚Ɉø”‚É•À‚ׂé‚à‚ñ‚¾‚ÆB

37 F
‚ [A‚²‚ß‚ñAˆø”•À‚ׂ½‚â‚‚ªƒ[ƒJƒ‹•Ï”‚É‚È‚éB‚¾‚Á‚½B
æ‚É錾‚·‚ê‚΂¢‚¢‚ñ‚¾‚©‚ç•Ê‚É‚æ‚­‚ËH

38 F
ƒLƒ‚‚¢‚â‚ñB‚»‚Ì‚â‚è•ûB

39 F
‚±‚ê‚©‚çawk‚ð•×‹­‚µ‚Ü‚·B

40 F
awk‚ðŠw‚Ô‚±‚Æ‚É‚È‚é‚Å‚µ‚傤B

41 F
‚Ý‚È‚³‚ñawk‚ÍŒê‚ç‚È‚¢‚Ì‚Å‚·‚ËB

42 F
‘D“ªawk‚µ‚Ä‘DŽR‚É“o‚éB

43 F
l‚ÉŒ¾‚¦‚é‚Ù‚Çawk’m‚Á‚Ä‚é–ó‚Å‚à–³‚¢‚µ

44 F
‚¾‚¯‚Çl‚̘b‚Í•·‚«‚½‚¢‚µ

45 F
awk‚Ú—˜’Ê

46 F
1

47 F
awk‚ð•×‹­‚µ‚Ä‚¢‚é‚Ì‚Å‚·‚ªAPerl‚ÉŠµ‚ê‚Ä‚¢‚é‚©‚ç‚©
awk‚Å‚Å‚«‚邱‚Æ‚ÍPerl‚Ńƒ“ƒ‰ƒCƒi[‚Å‚â‚Á‚½‚Ù‚¤‚ª(­‚È‚­‚Æ‚àŽ©•ª‚É‚Æ‚Á‚Ä‚Í)‘¬‚¢‹C‚ª‚µ‚Ä‚È‚è‚Ü‚¹‚ñB
‚±‚ê‚ɂ‚¢‚Äawkn—ûŽÒ‚Å‚ ‚éŠF—l‚Í‚¢‚©‚ª‚¨l‚¦‚É‚È‚è‚Ü‚·‚©H
‚±‚¤‚¢‚¤Žž‚Íawk‚Ì‚Ù‚¤‚ª•Ö—˜I‚Æ‚¢‚¤—á‚É‚Í‚Ç‚ñ‚È‚à‚Ì‚ª‚ ‚è‚Ü‚·‚©H

48 F
ª‚ ‚Á‘¬‚¢‚Æ‚¢‚¤‚Ì‚ÍAƒR[ƒh‚ð‘‚­‚Ì‚ª‘¬‚¢‚Æ‚¢‚¤ˆÓ–¡‚Å‚·B

49 F
>>47
perl ‚Í‚È‚­‚Ä‚à awk ‚È‚ç“ü‚Á‚Ä‚¢‚鎖‚ª‚ ‚é

50 F
uƒR[ƒh‚ð‘‚­‚Ì‚ª‘¬‚¢v‚Æ‚¢‚¤Šî€‚ÅA
u‚±‚¤‚¢‚¤Žž‚Íawk‚Ì‚Ù‚¤‚ª•Ö—˜v‚Æ‚¢‚¤—á‚ð‘¼l‚É‹“‚°‚³‚¹‚Ä‚àA
‚»‚ê‚Í‚»‚ÌlŠÔ‚É‚Æ‚Á‚Ä‚Ì‘¬‚¢‹C‚ª‚·‚é•Ö—˜‚³‚Å‚ ‚Á‚ÄA
ˆÓ–¡‚Ì‚ ‚éˆê”Ê“I‚È‹c˜_‚É‚È‚ç‚È‚¢‚Ì‚Å‚Í‚È‚¢‚©H

51 F
Perl‚àRuby‚àPython‚àŽg‚¤‚¯‚ÇA“Á’è‚̃Jƒ‰ƒ€‚¾‚¯‚É‹»–¡‚ª‚ ‚éƒP[ƒX‚Í
–³ˆÓŽ¯‚Éawk‚ðŽg‚¤‚±‚Æ‚à‚ ‚éB
perl -a ‚Æ‚© cut‚µ‚Äpaste‚Æ‚©‚à‚ ‚邯‚ÇB

52 F
>>49 ŠÂ‹«‚É‚æ‚炸“ü‚Á‚Ä‚¢‚é‚Æ‚¢‚¤‚±‚Æ‚Å‚·‚ËB
>>50@‚»‚¤‚Å‚·‚ËB
‚È‚ºawk‚È‚Ì‚©A
ˆê”Ê“I‚É‚Í‚Ç‚¤‚¢‚¤Žž‚Éawk‚ªŽg‚í‚ê‚é‚Ì‚©A
‚Æ‚¢‚¤‚Ì‚ªƒCƒ}ƒCƒ`Ž©•ª‚Ì‚È‚©‚Å•ª‚©‚Á‚Ä‚¢‚È‚¢‚Ì‚Å‚·B
>>51 ­‚µ•×‹­‚µ‚½ŒÀ‚è‚Å‚ÍAŠm‚©‚ɃJƒ‰ƒ€‚ÌŽæ‚èo‚µ‚Íawk‚ª•Ö—˜‚È‚Ì‚©‚à‚ÆŽv‚¢‚Ü‚µ‚½B


53 F
>>52
ƒVƒFƒ‹ƒXƒNƒŠƒvƒg‚Ì’†‚ÅA•nŽã‚ȃVƒFƒ‹‚ÌŒvŽZ”\—Í‚ð
•â‚¤‚½‚ß‚ÉAƒc[ƒ‹ƒ{ƒbƒNƒX‚̈ê‚‚Ƃµ‚ÄŽg‚í‚ê‚邱‚Æ‚ª‘½‚¢B
‚Ì‚ÅAƒVƒFƒ‹ƒXƒNƒŠƒvƒg‚ð‘‚­‹@‰ï‚ª‘½‚¢‚Ì‚È‚çA‚â‚Á‚Ä‚¨‚¢‚Ä
‘¹‚Í–³‚¢‚ÆŽv‚¤‚ªAƒtƒbƒgƒvƒŠƒ“ƒg‚ª‘½­ƒfƒJƒC‚±‚Æ‚Æ‚â‚âˆÚA«‚É
Œ‡‚¯‚邱‚Æ‚ð‹C‚É‚µ‚È‚¯‚ê‚ÎA•Ê‚ÉPerlŽg‚Á‚½‚Á‚Ä‚¢‚¢‚킯‚¾
i‚Ç‚¤‚¹¡‚È‚ç‘å’ï‚ÍŽg‚¦‚邾‚낤‚µAawk‚É‚µ‚Ä‚àˆê‰žPosix•W€‚¾‚ª
FX•ÏŽí‚ª‚ ‚éjB
‚ÜA’P‚É•Ö—˜‚ȃXƒNƒŠƒvƒgŒ¾Œê‚ª—~‚µ‚¢‚¾‚¯‚È‚çA¡Xawk‚ð‚â‚éˆÓ–¡‚Í
‚Ù‚Æ‚ñ‚Ç‚È‚¢‚¾‚낤B
ƒtƒB[ƒ‹ƒh•ªŠ„‚¾‚¯‚È‚çperl -a‚Åawk‚Ì^Ž—‚ª‚Å‚«‚邵‚ÈB

54 F
>>53 ’š”J‚È‚¨•ÔŽ–‚ ‚肪‚Æ‚¤‚²‚´‚¢‚Ü‚·B
ƒVƒFƒ‹‚ÌŒvŽZ‚Ì•â•‚Å‚·‚©B
ƒVƒFƒ‹ƒXƒNƒŠƒvƒg‚ð‘‚­‹@‰ï‚Í‘½­‚Í‚ ‚é‚Ì‚ÅA‘½­‚ÍŠo‚¦‚Ä‚¨‚±‚¤‚ÆŽv‚¢‚Ü‚·B

55 F
awk‚Æper‚ŒAˆ—‘¬“x‚Í‚Ç‚Á‚¿‚ª‘¬‚¢‚ñ‚¾‚ëH
‚Á‚ăIƒ}ƒG‚ªŽŽ‚¹‚Á‚ÄŒ¾‚í‚ê‚»‚¤‚¾‚¯‚Ç‚Ó‚ÆŽv‚Á‚½‚ñ‚Å‘‚¢‚Ä‚Ý‚½B

56 F
awk‚͈—Œn‘½‚¢‚©‚ç‚È‚Ÿ
‰½‚̈—‚©‚É‚à‚æ‚邾‚낤‚µ

57 F
‚Ç‚¿‚ç‚à“¾ˆÓ‚Æ‚·‚é’Pƒ‚ȃeƒLƒXƒg‚̃tƒBƒ‹ƒ^ƒŠƒ“ƒOˆ—‚È‚çA
I/O‘¬“x‚ŧŒÀ‚³‚ê‚é‚Ì‚Å‚Ç‚¿‚ç‚Å‚à(ˆ½‚¢‚Ísed‚ðŽ‚¿o‚µ‚Ä‚à)‘債‚Ä•Ï‚í‚ç‚È‚¢‚ÆŽv‚¤B
awk‚Ì^œ’¸‚͈ês–ì˜Y‚É‚ ‚é‚ÆŽv‚¤Ž„‚ÍA‚±‚ñ‚È‚Ì‚ð‚æ‚­‘‚«ŽÌ‚Ä‚éB
--
awk 'BEGIN {print 1+2*3-4;}'
ls -l /tmp|awk '$5>0'
ls -l |awk '{sum+=$5;} END{print sum;}'

58 F
Perl‚É‚½‚¢‚·‚éAwk‚ÌŒ»ŽÀ“IƒƒŠƒbƒg‚̓ƒ‚ƒŠÁ”­‚È‚¢‚±‚Æ‚­‚ç‚¢‚Å
‚±‚ê‚Í¡‚ÌŒvŽZ‹@‚Å‚Í”÷X‚½‚é–â‘肾B
ESR‚ÌArt of UNIX Programming‚𗧂¿“Ç‚Ý‚µ‚½‚ç
Awk‚ªƒƒ‚ƒŠß–ñ‚Ì‚½‚ß‚ÉŽd—l‚ð§ŒÀ‚µ‚½‚±‚Æ‚ª
‘Šú‚É‹£‘ˆ—Í‚ð‚È‚­‚µ‚½——R‚Ƙ_‚¶‚Ä‚¢‚½B
ƒoƒbƒh‚ÈŒ¾ŒêÝŒv‚ÌŒ©–{‚Á‚ÄŠ´‚¶‚ÅA‚¿‚Æ•s–ù‰õ‚¾‚Á‚½

59 F
>>57
‰´‚àŽžX‚â‚éB
‚»‚ÌŽž‚Í•Ö—˜I‚ÆŽv‚Á‚Ä.cshrc‚Æ‚©‚Éalias“o˜^‚·‚邯‚Ç‚·‚®‚É–Y‚ê‚Ä“¯‚¶“à—e‚ðŽè‘Å‚¿‚µ‚Ä‚½‚è‚·‚é
‚»‚Ì‹“‹å‚É‚±‚ê‚Í•Ö—˜I‚ÆŽv‚Á‚Ä.cshrcŠJ‚­‚ÆŠù‚É“o˜^‚µ‚Ä‚ ‚é‚Æ‚¢‚¤c

60 F
>>59
‘S‰´‚ª‹¤Š´‚µ‚½B

61 F
i.cshrc‚ð.bashrc‚É’u‚«Š·‚¦‚Äj@‰´‚à“¯‚¶ŒoŒ±‚ª‚ ‚éB

62 F
uˆês–ì˜Yv‚Í–¼–ó

63 F
‚Þ‚©‚µAu“Ç‘‚·‚éƒvƒƒOƒ‰ƒ}v‚ð‚æ‚ñ‚ÅAawk‚ʼnïŒv‚ð‚·‚é‚Ì‚ª‚©‚Á‚±—Ç‚¢‚Æ
‚¨‚à‚Á‚Ä‚Ü‚µ‚½B
‚Å‚àŠm’è\‚ð‚·‚ég‚É‚È‚Á‚½‚çEXCEL‚ðŽg‚Á‚Ä‚¢‚éB
uƒGƒ“ƒWƒjƒA‚Ì‚½‚ß‚ÌŽ––±ì‹Æ sed awk grep ‚»‚µ‚ÄTexv‚È‚ñ‚đЂª‚ ‚ê‚ÎH‚¢‚‚­‚Ì‚É...

64 F
awk‚ʼnïŒv—pƒXƒNƒŠƒvƒg‚ð‘‚­‚æ‚èA‰ïŒv‚Ì‚µ‚­‚Ý‚ð—‰ð‚·‚邱‚Æ‚Ì•û‚ª
‰´‚É‚Í—y‚©‚ɓ‚¢

65 F
Perl‚¾‚¯‚ÇA‚±‚ê‚ÍH
http://www.moge.org/okabe/temp/balance/

66 F
Perl ‚̓R[ƒhˆê–ÚŒ©‚ĉ´‚ªcore“f‚«‚»‚¤‚É‚È‚é

67 F
”CˆÓ‚É core ‚ª“f‚¯‚½‚ç•Ö—˜‚¾‚æ‚ÈB“ú‹L‘ã‚í‚è‚É‚È‚éB

68 F
>>67
‘ÌŒ^ˆÛŽ‚Ì‚½‚ß‚É—]‹V‚È‚­‚³‚ê‚Ä‚¢‚él‚à‚¢‚½‚悤‚Å‚·B
Žw‚ðA‚É“ü‚ê‚é‚悤‚É‚·‚é‚Ì‚ÅA‘­‚ÉŒ¾‚¤‚°‚낾‚±‚ªŽw‚É‚Å‚«‚Ü‚·B

69 F
awk‚Á‚Ä‚È‚ñ‚ÅPerl•—‚ɳ‹K•\Œ»’uŠ·‚Å‚«‚é‚悤‚É‚È‚ç‚ñ‚ÌB“ÆŽ©Šg’£‚Å‚à‚¢‚¢‚ñ‚¾‚¯‚Ç‚ÈB

70 F
>>69
‚ñA‚­‚킵‚­B
Perl‚̃ƒ^•¶Žš‚ðŽg‚¢‚½‚¢‚Æ‚¢‚¤‚̂Ƃ͈Ⴄ‚Ì?
#Žg‚¦‚ñ‚킯‚¾‚ª

71 F
awk‚ÍDFA‚Åperl‚ÍNFA‚¾‚Á‚¯‚©?

72 F
>>71
ƒIƒŠƒWƒiƒ‹‚Å‚Í‚ËB
’†‚É‚ÍNFA‚ðŽg‚Á‚Ä‚¢‚éawk‚à‚ ‚éBmawk‚Æ‚©B

73 F
xgawk‚Å‘½”{’·®”‚ðŽg‚¢‚½‚¢‚ñ‚Å‚·‚ªA
printf( "%ld\n", num );
‚Å‚ÍŒ…”‚Í‘‚¦‚Ăณx‚Íオ‚Á‚Ä‚È‚¢‚悤‚Å‚·B
Œ^錾‚·‚é‚É‚Í‚Ç‚¤‚·‚é‚Ì‚Å‚µ‚傤‚©

74 F
>>73
‘½”{’·®”‚ðŽÀ‘•‚·‚é‚̂Ɍ•ʂ̸“x‚ðã‚°‚Ä‚Ç‚¤‚·‚éB

75 F
xgawk‚Í‘½”{’·®”‚ ‚é‚ñ‚Å‚·‚æ‚ËH
‚ÅAruby‚̂悤‚É–³éŒ¾‚ÅŽg‚¦‚é‚©‚ÆŽv‚Á‚½‚ç‚»‚¤‚Å‚Í‚È‚¢‚炵‚¢‚Ì‚ÅA
‚Ç‚¤‚·‚é‚Ì‚©‚ÆB
http://home.vrweb.de/~juergen.kahrs/gawk/XML/xmlgawk.html
‚¢‚Ü‚±‚Ì‚Ö‚ñŒ©‚Ä‚é‚ñ‚Å‚·‚ª

76 F
MPFR,‘½”{’·®”‚Å‚Í‚È‚­ŽÀ”‚©‚ÈB
ƒOƒO‚Á‚ÄŒ©‚‚¯‚Ü‚µ‚½B
http://www.kt.rim.or.jp/~kbk/zakkicho/zakkicho7.html#D060126
http://golf.shinh.org/p.rb?Factorial
ŽÀ‚Í‚±‚ê‚â‚Á‚Ä‚é‚ñ‚Å‚·‚ªB
‚ ‚Æ‚Ídll‚̃pƒX‚ª•ª‚©‚ê‚ÎEEE

77 F
>>76
u‚ ‚È‚²‚év‚Ì xgawk ‚Í MPFR Ï‚ñ‚Å‚È‚¢‚ÆŽv‚¤‚ªEEEB

78 F
‚»‚¤‚Å‚·‚©
‚Ç‚¿‚ç‚É‚µ‚Ä‚àŽÀ”‚Á‚ÄŽ–‚Í‚â‚Á‚Ï–³—‚È‹C‚ª‚µ‚Ü‚µ‚½

79 F
sed‚Ý‚½‚¢‚ÉAƒpƒ^[ƒ“•”•ª‚ðs”Ô†‚ÅŽw’èo—ˆ‚Ü‚¹‚ñ‚©H

80 F
>>79
awk 'NR == 79 {print;}'
‚Á‚Ä‚±‚Æ? ‚»‚ê‚Æ‚àA
awk 'FNR == 79 {print;}'
‚Á‚Ä‚±‚Æ?

81 F
>80
‚Í‚¶‚ßsed‚Ý‚½‚¢‚É 10,35{ ‚Ý‚½‚¢‚ÈŠ´‚¶‚É‘‚¢‚ă_ƒ‚¾‚Á‚½‚Ì‚Å; }
•’Ê‚É”äŠrŽ®‘‚­‚ñ‚Å‚·‚ËB10<=NR&&NR<=35{ ‚Åo—ˆ‚Ü‚µ‚½; }
‚ ‚肪‚Æ‚¤‚²‚´‚¢‚Ü‚·B

82 F
>>81
‚à‚¤­‚µ sed ‚炵‚­‚µ‚½‚¢‚È‚çA
10==NR, NR==35 { print }
‚È‚ñ‚Ä‚Ì‚à‚ ‚è

83 F
awk ‚̓IƒvƒVƒ‡ƒ“‚È‚µ‚¾‚ƃƒ“ƒ‰ƒCƒi[‚̃R[ƒh‚ð‘‚­‚±‚Æ‚É‚È‚é‚ÆŽv‚¢‚Ü‚·‚ª
ŽÀÛ awk ‚̃ƒ“ƒ‰ƒCƒi[‚Á‚Ä‚Ç‚ñ‚ÈŽž‚ÉŽg‚¢‚Ü‚·‚©H
‚ ‚܂茩‚½‚±‚Æ‚ª‚È‚­‚Äc

84 F
>>83
UNIX‚Å‚Í‘½‚­‚̃tƒ@ƒCƒ‹‚âo—Í‚ª—“‹æØ‚èƒeƒLƒXƒg‚ÌŒ`Ž®‚É‚È‚Á‚Ä‚¢‚é‚©‚ç
‚»‚ÌêŽg‚¢ŽÌ‚ăƒ“ƒ‰ƒCƒi[‚ª–{—ˆ‚ÌŽg‚¢•û‚È‚ñ‚¾‚¯‚ÇA
‘¼‚ÌOS‚¾‚Æ BEGIN ‚ð main ‘ã‚í‚è‚ÉŽg‚¤‚悤‚Ȃ̂΂Á‚©‚É‚È‚é‚©‚à‚ËB

85 F
>>83‚ªsed‚ð‚Ç‚¤Žg‚Á‚Ä‚¢‚é‚Ì‚©‹C‚É‚È‚éB
sedƒXƒNƒŠƒvƒgƒtƒ@ƒCƒ‹‚Æ‚©ì‚Á‚ÄAƒXƒNƒŠƒvƒg‚̈ø”‚Ɉ—‘Îۂ̃tƒ@ƒCƒ‹‚ð“n‚µ‚Ä‚½‚è‚·‚é‚Ì‚©‚ÈB

86 F
‚æ‚­‘‚­ˆês–ì˜YB
--
du -sk /tmp/* | awk '{sum += $1;} END {print sum / NR;}'
# ‚Ü‚ŸAdu‚Á‚Ä‚Ì‚Í¡Žv‚¢‚‚¢‚½‚¾‚¯‚ÅAŽÀÛ‚Édu‚Ìo—Í‚Ì•½‹Ï‚ðŽæ‚邱‚Æ‚Í‚È‚¢‚¯‚Ç‚ËB
--
paste foo bar | awk '($1 - $2) > 1e-3 || ($1 - $2) < -1e-3 {print NR, $0;}'
# ˆê’v‚ðŒ©‚é‚¾‚¯‚È‚çdiff‚Å‚¢‚¢‚¯‚ÇA‹ßŽ—‚ðŒ©‚é‚É‚ÍŽg‚¦‚È‚¢‚ñ‚ÅB

87 F
>>85
sed‚Í’P‘Ì‚Ì–½—ß‚ðŒ©‚Äu’uŠ·vus‚ÌØ‚èŽÌ‚Äv‚Ý‚½‚¢‚È—p“r‚ª
ƒpƒb‚ÆŒ©‚ÄŽv‚¢•t‚­‚Ì‚Å‹^–â‚Í•¦‚©‚È‚¢‚ñ‚Å‚·B
awk‚͂ЂƂ‚ЂƂ‚̖½—ß‚ðŒ©‚Ä‚à
•’ʂɃXƒNƒŠƒvƒgŒ¾Œê‚Ì–½—ß‚Æ‚µ‚©Žv‚¦‚È‚¢‚Ì‚Å
uƒR[ƒh‘‚­‚È‚ç‚Æ‚à‚©‚­Aƒƒ“ƒ‰ƒCƒi[‚Å‚Ç‚¤Žg‚¤‚ÌHv‚Æ
‹^–â‚ð‚à‚Á‚Ä‚µ‚Ü‚¤‚ñ‚Å‚·B
>>86
‚¤`‚ñAŒ‹\•¡ŽG‚É‚È‚è‚Ü‚·‚ËB
‚»‚ꂾ‚ÆŽ„‚È‚çƒ^[ƒ~ƒiƒ‹‚É‘‚©‚¸‚É
ƒR[ƒh‚É‹N‚±‚µ‚Ä‚µ‚Ü‚¢‚»‚¤‚Å‚·B
‚Å‚àAƒpƒ^[ƒ“‚ƃtƒB[ƒ‹ƒh‚ðãŽè‚­Žg‚¦‚Î
FXo—ˆ‚é‹C‚ª‚µ‚Ä‚«‚Ü‚µ‚½B
—á‚ð‚ ‚è‚ª‚Æ‚¤‚²‚´‚¢‚Ü‚·B

88 F
‚ AƒR[ƒh‘‚«‚»‚¤‚È‚Ì‚ÍŒãŽÒ‚Å‚·B
•½‹Ï‚Æ‚©‡Œv‚Ý‚½‚¢‚ȃ‚ƒm‚É‚Í—Ç‚³‚»‚¤‚Å‚·‚ËB

89 F
¡“ú‘‚¢‚½ˆês–ì˜YB
--
awk '{for (ic = 1; ic <= NF; ++ic) {if (max < $ic) max = $ic;}} END {print max;}'
--
‚±‚ê‚à‘SƒtƒB[ƒ‹ƒh‚ÉŠg’£‚µ‚Ä‚¢‚邾‚¯‚ÅA’P‚ÉÅ‘å’l‚𓾂Ă¢‚邾‚¯‚¾‚ËB

90 F
‚æ‚­‘‚­ˆês
du -k|awk '$1 > 10000'
‚Å‚©‚¢ƒfƒŒƒNƒgƒŠ‚ð‚³‚ª‚·

91 F
‰´‚ª‚æ‚­‘‚­ˆês–ì˜Y
$ awk 1 > hoge.sh

92 F
>>91
‚»‚ê‚ɉ½‚̈Ӗ¡‚ª?
cat > hoge.sh‚Å‚àŽ–‚ª‘«‚è‚»‚¤‚¾‚ªB

93 F
>92
Windows‚Éawk“ü‚ê‚Ä‚½Žž‚ÉA‚±‚ñ‚ȃwƒ“‚È•È‚ª•t‚¢‚Ä‚µ‚Ü‚Á‚½B

94 F
‚·‚Ý‚Ü‚¹‚ñA‰SŽÒ‚Å‚·‚ªawk‚ÉŠÖ‚·‚é½Ú‚ª‚±‚±‚µ‚©‚È‚©‚Á‚½‚Ì‚ÅB
«‚̃\[ƒX‚ð‘‚¢‚Ä‚¢‚½‚¾‚¢‚½‚Ì‚Å‚·‚ªA‚¢‚Á‚½‚¢‚Ç‚¤‚·‚ê‚ÎŽg‚¦‚é‚Ì‚Å‚µ‚傤‚©H
‚¿‚È‚Ý‚ÉA‚±‚ê‚̓tƒHƒ‹ƒ_“à‚ÌWinrarŒ`Ž®ƒtƒ@ƒCƒ‹‚̃ŠƒJƒoƒŠƒŒƒR[ƒh‚ª•t‚¢‚Ä‚¢‚é‚©”Û‚©
ƒŠƒXƒg‚ðˆêŠ‡‚Åo—Í‚·‚é‚à‚Ì‚Å‚·B
‚æ‚낵‚±
**************
ƒRƒ}ƒ“ƒhƒ‰ƒCƒ“‚¾‚¯‚Çunrar lt sample.rar‚Ìo—Í—˜—p‚µ‚ăŠƒXƒg‚ðì‚邾‚¯
Žg‚¢•û‚̓pƒCƒv‚Åawk‚É“n‚µ‚Ĉ—unrar lt *.rar | gawk -f rr.awk
awk‚È‚ñ‚©“ü‚Á‚Ä‚È‚¢‚¾‚낤‚©‚ç“–‘R‚»‚Ì‚Ü‚Ü‚¶‚á“®‚©‚È‚¢
rr.awk
#!/usr/local/bin/gawk
BEGIN {$rr=0; printf "%-30s\t%s\n", "FileName", "RecoveryRecord";}
{if($1=="Solid" && $2=="archive"){
for(i=3;i<=NF;i++) printf "%-30s ",$i;printf "\t";getline;getline;
if($0=="Recovery record is present"){printf "Yes / ";
for(;;){getline;if($0=="Data header type: RR"){getline;printf "%sbyte\n",$2;break;}}
}else printf "No\n";}}

95 F
‚»‚ê‚ð“®‚©‚·‚É‚Í‚Ü‚¸ gawk ‚ð‚Ç‚±‚©‚©‚ç“üŽè‚·‚éB

96 F
>>94
>«‚̃\[ƒX‚ð‘‚¢‚Ä‚¢‚½‚¾‚¢‚½‚Ì‚Å‚·‚ªA
‘‚¢‚½l‚É•·‚­B
‚Æ“š‚¦‚é‚ÆA‚킯‚Ì‚í‚©‚ç‚ñ——R‚ðŒ¾‚Á‚Ä‚²‚˂邾‚낤‚©‚çA
æ‚ÉŒ¾‚Á‚Æ‚­‚ÆA‚»‚ñ‚ÈŒ©‹ê‚µ‚¢Œ¾‚¢–ó‚·‚é‚ÈB
‚Ç‚¤‚¹“š‚¦‚½‚Á‚ÄA¡“x‚Í››‚ª‚í‚©‚è‚Ü‚¹‚ñ‚Æ‚©Œ¾‚¢o‚·‚ñ‚¾‚ëH
‚Ç‚Á‚©‚©‚çgawk‚ð—Ž‚Æ‚µ‚Ä“WŠJ‚µ‚ë‚æB‘S‚­Aˆê¶ƒOƒO‚Á‚Ä‚ë‚æƒJƒX
"C:\Program Files\WinRAR\UnRAR.exe" lt *.rar | "gawk‚̃tƒ‹ƒpƒX" -f rr.awk

97 F
‚·‚¢‚Ü‚¹‚ñA‚ ‚éƒeƒLƒXƒg‚ð{print $1,$2}‚Æ‚µ‚Ä’Šo‚µ‚Ä
aaa 1
aaa 2
aaa 3
bbb 1
bbb 2
ccc 1
ccc 4
...
‚Æ‚Ü‚Å‚Í‚Å‚«‚½‚ñ‚Å‚·‚ªA•À‚ñ‚Å‚¢‚éƒf[ƒ^‚ð‚»‚ê‚¼‚êA
aaa 6
bbb 3
ccc 5
‚ÆWŒv‚µ‚½‚¢‚ñ‚Å‚·‚ªA‚ǂ̂悤‚É‚·‚ê‚΂¢‚¢‚Å‚µ‚傤‚©H

98 F
awk '{count[$1] += $2;} END{for (aaa in count) {print aaa count[aaa]}}'
‚ ‚Ƃ̓\[ƒg‚·‚ê‚΂¢‚¢‚Í‚¸

99 F
>98‚³‚ñA‚ ‚肪‚Æ‚¤‚²‚´‚¢‚Ü‚·I
‚È‚¢‚Ì‚Å‚·‚ªA¡‚Ü‚Å•Ö—˜‚ȃc[ƒ‹‚É—Š‚Á‚Ä‚¢‚Ä‘S‘RƒRƒ}ƒ“ƒh‚ɂ‚¢‚Ä—‰ð‚Å‚«‚Ä‚¢‚È‚©‚Á‚½‚Ì‚Å¢‚Á‚Ä‚¢‚Ü‚µ‚½B
ŽÀ‚̓[ƒ‹ƒƒO‚Å‘—MŽÒ‚ª‚ǂꂾ‚¯‚Ì’Ê”‚ð‘—M‚µ‚Ä‚é‚©‚ðŠm‚©‚߂邽‚߂ɃRƒ}ƒ“ƒh‚Å‚Å‚«‚È‚¢‚©A‚Å>97‚ł‚܂¢‚Ä‚¢‚Ü‚µ‚½B
‰½‚Æ‚©“r’†‚Ü‚Å‚Å‚«‚½‚ñ‚Å‚·‚ªA”ñí‚ɃX[ƒp[ƒGƒŒƒKƒ“ƒg‚È1sƒR[ƒh‚Å‚µ‚ÄcB
Ž¿–â‚‚¢‚Å‚Å\‚µ–ó‚È‚¢‚Ì‚Å‚·‚ªA
(aaa in count) {print aaa count[aaa]}
‚Ìaaa‚ɂ‚¢‚Ä‚Í‚Ç‚¤‰ðŽß‚·‚ê‚΂¢‚¢‚Ì‚Å‚µ‚傤‚©H


100 F
>>99
bash‚Æ‚©‚Ìfor‚Æ‚©‚Æ“¯‚¶‚Å“K“–‚È•¶Žš—ñ‚È‚ç‚È‚ñ‚Å‚à‚¢‚¢‚Å‚·D—á‚Éo‚Ä‚«‚½aaa‚È‚ñ‚©‚É‚·‚é‚©‚ç‚â‚₱‚µ‚­‚È‚Á‚Ä‚·‚Ý‚Ü‚¹‚ñD
for(hoge in list) {...}
‚Å”z—ñlist‚̃L[‚ð•Ð‚Á’[‚©‚çhoge‚É“ü‚ê‚ă‹[ƒv‚·‚é‚Á‚ĈӖ¡‚É‚È‚é‚Í‚¸‚Å‚·‚æD

101 F
98‚¶‚á‚È‚¢‚¯‚Ç
awk '{count[$1] += $2;} END{for (i in count) {printf "%s %i\n", i, count[i]}}'
‚±‚¤‚â‚Á‚Ä‘‚¯‚΂µ‚ñ‚¹‚‚¶‚á‚ËH
ƒf[ƒ^‚Ì’†‚Ìaaa‚ÆloopƒJƒEƒ“ƒ^[‚Ìaaa‚𓯂¶–¼‘O‚É‚·‚é‚͈̂Ӓnˆ«‚¾‚ÆŽv‚¤‚æ


102 F
101‚Å‚·B‚·‚Ü‚ñonz

103 F
‚ [A‚Ý‚ñ‚È‘‚¢‚Ä‚¢‚é‚©‚玄‚Ì‘‚¢‚½‚Ì‚Í‘å•‚Éí‚é‚©B
‚»‚ÌENDƒuƒƒbƒN“à‚ÍA
for (§Œä•Ï” in ˜A‘z”z—ñ) {...;}
‚Æ‚¢‚¤ƒpƒ^[ƒ“B
‚»‚Ì‘O’i‚Ìcount[$1] += $2‚͈ês–Ú‚Ì‚Æ‚«
count["aaa"] += 1‚ƉðŽß‚³‚ê‚éBˆÈ‰º“¯—l‚ÉB
‚±‚Ìcount‚ª˜A‘z”z—ñ‚Æ‚µ‚ÄŽg‚í‚ê‚Ä‚¢‚é‚Æ‚¢‚¤‚±‚ÆB

104 F
>>101
c”½È‚µ‚Ä‚Ü‚·
‚¢‚âC‚Ù‚çC‚‚¢‚¢‚‚à‚̃NƒZ‚Åc‚²‚ß‚ñ

105 F
‚¢‚¦‚¢‚¦‚¢‚¦‚¢‚¦c‚»‚¤‚¢‚¤ˆÓ–¡‚¶‚á‚È‚­‚Ä‹³‚í‚Á‚Ä‚¢‚È‚ª‚ç‚·‚¢‚Ü‚¹‚ñ‚Å‚·B
ã‹L‚Å‘‚¢‚½‚Æ‚¨‚è•Ö—˜ƒc[ƒ‹‚É—Š‚èØ‚Á‚Ä‚Ä–w‚Ç’m‚ç‚È‚¢Ž„‚ªˆ«‚¢‚Ì‚Å‚·‚ªcB
¡ˆê¶Œœ–½3byte’ö“x‚Ì”]‚Ý‚»‚ŕ׋­‚µ‚Ä‚é‚ñ‚Å‚·‚ªA2“ú–Ú‚ÅÁÜ‚µ‚»‚¤‚ÅŽ¿–₳‚¹‚Ä–á‚¢‚Ü‚µ‚½cB
‚½‚Æ‚¦‚΃ƒO‚É‚Í
Feb 9 22:44:40 localhost postfix/qmgr[1936]: 345C48C0154: from=<use1@example.com>, size=556, nrcpt=1 (queue active)
‚Æ•K‚¸o‚Ü‚·B‚ÅA
1,¶ƒƒO‚ð‚»‚Ì‚Ü‚Üˆ—‚·‚é‚Ì‚ª•|‚¢i‘å‚«‚ȃtƒ@ƒCƒ‹j‚Ì‚ÅA“ú•t‚ŃƒO‚ð’Šo‚µ‚ĕʃtƒ@ƒCƒ‹‚Ö•Û‘¶B
2,grep‚Å nrcpt=‚Æ’Šo‚µ‚ÄA‚³‚ç‚Égrep -v‚ÅœŠO‚·‚éƒhƒƒCƒ“‚ðŽw’肵‚Ä’Šo
3,‚»‚µ‚Äsed‚Ånrcpt=‚ð휂µ‚Ä
4,‚±‚±‚Å>97‚̂悤‚É$7‚Æ$9‚ð•À‚ׂ½‚Æ‚±‚ë‚Å”]‚Ý‚»‚̃oƒbƒtƒ@ƒGƒ‰[‚ð‹N‚±‚µ‚Ü‚µ‚½B
‚±‚̈—‚Ì•û–@‚àƒGƒŒƒKƒ“ƒg‚È‚±‚Æ‚Í•ª‚©‚Á‚Ä‚¢‚Ü‚·‚ªA’p‚ͳ’m‚Å‚¨Žf‚¢‚µ‚½ŽŸ‘æ‚Å‚·cB

106 F
gsub‚Å[.*]‚ð’u‚«Š·‚¦‚é‚É‚Í‚Ç‚¤‚·‚ê‚΂¢‚¢‚Å‚µ‚傤‚©H

107 F
>>106
‚»‚ê‚̓Šƒeƒ‰ƒ‹‚Æ‚µ‚Ĉµ‚Á‚Ä‚Æ‚¢‚¤‚±‚Æ‚©‚¢?
‚È‚ç‘S•”ƒGƒXƒP[ƒv‚·‚ê‚΂¢‚¢‚ÆŽv‚¤‚ª‰½‚©–â‘肪‚ ‚é‚Ì?

108 F
awk‚ÅŒ»ÝŽž‚©‚çn•ª‘O‚©‚çˆÈ~‚̃ƒO‚¾‚¯‚𔲂«o‚µ‚½‚¢‚ñ‚Å‚·‚ªA‚Ç‚¤‚·‚ê‚΂¢‚¢‚Å‚µ‚傤‚©cB
02 15 12:34:56 xxxxxxxxx
02 15 13:45:01 xxxxxxxxx
...
...
...
‚Æ‚©‚ÌŒ`Ž®‚È‚Ì‚ÅAstrftime()‚Æ‚©‚ÅŒ»Ý‚ƃƒO‚ÌŽž‚ð”äŠr‚µ‚Ä”²‚«o‚·A‚Æ‚©‚ðŽŽ‚µ‚½‚ñ‚Å‚·‚ªƒ_ƒ‚Å‚µ‚½c

109 F
>>108 ‚±‚ê‚Å‘Ê–Ú‚©‚ÈH(ˆê‰ž gawk 3.0.4 ‚Å‚Í“®‚¢‚½)
BEGIN{
n=5
basetime=strftime("%m %d %H:%M:%S", systime()-60*n)
}
{
chktime=substr($0, 1, 14)
if(chktime >= basetime) print
}

110 F
>109
‚ ‚肪‚Æ‚¤‚²‚´‚¢‚Ü‚·c‘f’¼‚É–Ú‚ª—Ø‚Å‚µ‚½cB
> chktime=substr($0, 1, 14)
‚È‚ñ‚Å‚·‚Ëc
perl‚ªŽg‚¦‚È‚¢ŠÂ‹«‚È‚Ì‚ÅA‚±‚ꂪ•ª‚©‚ê‚΂¢‚ë‚¢‚ë—¬—pŒø‚­‚Ì‚Å•‚©‚è‚Ü‚µ‚½B
‚ ‚肪‚Æ‚¤‚²‚´‚¢‚Ü‚·B‚à‚¤‚¿‚å‚Á‚Ƹi‚µ‚Ü‚·BBB

111 F
>>29
ð”N6ŒŽ‚ÉuAWK‚ð256”{Žg‚¤‚½‚ß‚Ì–{v‚ª–{‰®‚Ì‘’I‚É‚ ‚Á‚½‚Ì‚Å”ƒ‚¢‚Ü‚µ‚½B
‰œ•t‚É
1993”N8ŒŽ21“ú‰”Å”­s
2007”N5ŒŽ9“ú@‘æ1”Å‘æ16ü”­s
‚Æ‘‚©‚ê‚Ä‚¢‚Ü‚·B

112 F
>>111
‚¢‚‚̃ŒƒX‚ɃŒƒX‚µ‚Ä‚ñ‚¾i‚—
ÓÚ‚à”ƒ‚Á‚½‚¯‚ÇA‚Ü‚¾‘å‚«‚È–{‰®‚ÅŒ©‚©‚¯‚é‚ËB

113 F
>2007”N5ŒŽ9“ú@‘æ1”Å‘æ16ü”­s 
–{‰®‚Ì’I‚Å–°‚葱‚¯‚Ä‚½‚Á‚Ă킯‚¶‚á‚È‚¢‚Ì‚©w

114 F
–Ú‚ª—Ø ‚Ɉê’v‚·‚é“ú–{Œê‚̃y[ƒW –ñ 1,920 Œ’† 1 - 20 Œ–Ú (0.24 •b)

115 F
ƒƒK—Ø

116 F
sed, awk, ruby ‚ðŽg‚¤B
‚»‚ꂼ‚ê“KÞ“KŠ‚ÅŽg‚¤‚¯‚ÇA
used ‚¾‚¯vuawk ‚¾‚¯v‚ÅÏ‚Ü‚¹‚ç‚ê‚é‚ÆA
•sŽv‹c‚ÈŠì‚Ñ‚ðŠ´‚¶‚éB

117 F
>>116
‚¤‚¿AAIXŽg‚Á‚Ä‚é‚ñ‚Åksh+sed+awk+perl‚¾‚ÈB
ruby‚ª•W€‚ŃCƒ“ƒXƒg[ƒ‹‚³‚ê‚Ä‚éŠÂ‹«‚Á‚Ä‚ ‚ñ‚Ü‚È‚¢‚ÆŽv‚¤B

118 F
ŒÃ‚¢ƒT[ƒo‚¾‚ÆPerl‚·‚ç“ü‚Á‚Ä‚È‚¢Ž–‚ª‚ ‚é‚©‚çawk‚Íd•ó‚·‚éB

119 F
Å‹ß‚Ìgawk‚ªƒlƒbƒgƒ[ƒN‚É‚àŽg‚¦‚é‚Æ’m‚Á‚Ä‚¿‚å‚Á‚Æ‹Á‚¢‚½‚—
ƒJ[ƒjƒnƒ“‚Ì–{ƒŒƒxƒ‹i‚Æ‚©256”{j‚µ‚©’m‚ç‚È‚¢l‚Á‚Ä‘½‚¢‚ÆŽv‚¤B

120 F
ƒm[ƒ}ƒ‹‚Ìawk‚ÅXML‚ðŽš‰º‚°‚µ‚½‚肵‚Ä‚¤‚Ü‚­•\Ž¦‚³‚¹‚é‚É‚Í‚Ç‚¤‚·‚ê‚΂¢‚¢‚Ì‚©‚ÈEEE

121 F
sed‚¾‚¯‚Å‘‚¯‚é‚ÆA‰´‚Á‚Ä“ªƒCƒC‚©‚à‚Á‚ÄŽv‚¤B
#!/bin/sed -f

122 F
•¶Žš—ñ‚Ì’Pƒ‚È’uŠ·‚¾‚¯‚È‚çawk‚æ‚èŠÈ’P‚É‘‚¯‚é‚ñ‚¾‚¯‚ÇB
awk‚ɌŎ·‚µ‚È‚¢‚Å—Õ‹@‰ž•Ï‚Ésed‚ðŽg‚¤‚Á‚ĈӖ¡‚Å‚È‚ç—v—Ì‚ª‚¢‚¢‚Æ‚¢‚¤ˆÓ–¡‚ÅŒ«‚¢‚¯‚ÇB
# awk‚Å‘‚¢‚½•û‚ªŠÈ’P‚È‚±‚Æ‚ðsed‚ÅŠæ’£‚Á‚Ä‘‚¢‚½‚Ì‚¾‚Æ‚µ‚½‚çA‚»‚̈Ӗ¡‚Å‚Í“ªˆ«‚¢‚Èw

123 F
awk‚©‚çsystem‚ÅsedŒÄ‚Ô‚±‚Æ‚ÍŽžX‚ ‚é‚—

124 F
>>24
awk‚Á‚Ä•\ŒvŽZ‚̂悤‚Ȉ—‚É“Á‰»‚µ‚Ä‚Ü‚·‚æ‚ËB
‚»‚Ì“_‚ª”ñí‚Ƀ†ƒj[ƒN‚Æ‚¢‚¤‚©Ž––±ˆ—‚ÌŒ¾Œê‚¾‚ÈA‚ÆB
visicalc(1979)awk(1977)‚Å‚·‚©‚çawk‚Ì‚Ù‚¤‚ªŽáŠ±ŒÃ‚¢‚ñ‚Å‚·‚ªA
•\ŒvŽZ‚̓Zƒ‹‚É’¼ÚŽ®‚ð‘‚­‚Æ‚¢‚¤”­‘z‚ªV‚µ‚©‚Á‚½B‚¤‚Þ‚ÞB

125 F
VisiCalc‚ÌlˆÄŽÒDan Bricklin‚É‚æ‚éƒAƒCƒfƒA‚Ìà–¾
ttp://www.danbricklin.com/history/saiidea.htm
Dan‚Ì“d‘삪HP‚¶‚á‚È‚­‚ÄTI‚È‚Ì‚ªˆÓŠO‚ÈŠ´‚¶B
The idea for the electronic spreadsheet came to me while I was a student at the Harvard Business School, working on my MBA degree, in the spring of 1978.
Sitting in Aldrich Hall, room 108, I would daydream.
"Imagine if my calculator had a ball in its back, like a mouse..." (I had seen a mouse previously, I think in a demonstration at a conference by Doug Engelbart, and maybe the Alto).
And "..imagine if I had a heads-up display, like in a fighter plane, where I could see the virtual image hanging in the air in front of me.
I could just move my mouse/keyboard calculator around, punch in a few numbers, circle them to get a sum, do some calculations, and answer '10% will be fine!'"
(10% was always the answer in those days when we couldn't do very complicated calculations...)

126 F
‚Í‚¶‚ß‚Ü‚µ‚Ägawk‚ÌŽ¿–â‚Å‚·
‚¨Žè‚·‚«‚ÌŽž‚É‚Å‚à‚²‰ð“š’¸‚¯‚Ü‚µ‚½‚ç•‚©‚è‚Ü‚·
2ch‚Å‚¨˜b‚µ‚Ä‚¢‚½‚¾‚¢‚½•û‚©‚çgawk‚ð‹³‚¦‚Ä’¸‚«‚Ü‚µ‚½
³‹K•\Œ»‚Ń}ƒbƒ`‚µ‚½•”•ª‚ª‚¢‚­‚‚ ‚Á‚Ä‚à‘S‚Ẳӊ‚ð1ƒAƒNƒVƒ‡ƒ“‚Å•Û‘¶‚Å‚«‚é—D‚ê‚à‚Ì‚Å‚·
“–•ûAŒ¾Œê‚Í‘S‚­’m‚ç‚È‚¢‚Ì‚Åæ‚قǂ܂ŃeƒXƒgŽÀs‚µ‚Ä‚Í‹Á‚¢‚Ä‚¢‚Ü‚µ‚½
‚±‚Ì—D‚ê‚à‚Ì‚ð¡Œã––‰i‚­Žg‚Á‚Ä‚¢‚«‚½‚¢‚Ì‚Å‚·‚ª
‰º‹L‚ÌŽ–€‚ðƒOƒO‚Á‚ÄŒ©‚½‚Ì‚Å‚·‚ª‚í‚©‚è‚Ü‚¹‚ñ‚Å‚µ‚½
‚Ç‚È‚½‚©‚í‚©‚é•û‚¨‚ç‚ê‚Ü‚µ‚½‚狳‚¦‚ĉº‚³‚¢
Ž„‚Ì‚â‚肽‚¢‚±‚Æ
EEUC‚ð“Ç‚Ýž‚ñ‚ÅS-JIS‚ðo—Í
EŠù‘¶‚̃eƒLƒXƒg––”ö‚ɒljÁ‘‚«ž‚Ý•Û‘¶
i‹³‚¦‚Ä’¸‚¢‚½ƒXƒNƒŠƒvƒg‚Íã‘‚«•Û‘¶‚È‚Ì‚Åo—Íæ‚Ì“à—e‚ªÁ‚¦‚Ä‚µ‚Ü‚¢‚Ü‚·j
‹C’·‚É‘Ò‚Á‚Ä‚¢‚Ü‚·‚̂ʼn½‘²‚æ‚낵‚­‚¨Šè‚¢’v‚µ‚Ü‚·

127 F
>>126
‘OŽÒ‚Íawk‚Å‚â‚é‚ׂ«‚±‚Æ‚Å‚Í‚È‚¢Biconv, nkf‚È‚Ç‚»‚êê—p‚̃c[ƒ‹‚ª‚ ‚éB
ŒãŽÒ‚à•K‚¸‚µ‚àawk‚Í•s—vBƒRƒ}ƒ“ƒhƒ‰ƒCƒ“‚ªŽg‚¦‚éŠÂ‹«‚È‚ç•’Ê‚É‚Å‚«‚éB
—Ⴆ‚ÎAUnixŒn‚È‚ç cat append.txt >> original.txt ‚ÅŠù‘¶‚̃tƒ@ƒCƒ‹‚ɒljÁ‚Å‚«‚éB
DOSŒn‚Å‚àAtype append.txt >> original.txt ‚Å‚Å‚«‚éB
—v‚ÍAawk‚Ì‚¢‚¢‚Æ‚±‚ë‚Í‚»‚ê’P‘Ì‚Å‚È‚ñ‚Å‚à‚Å‚«‚é(ˆ½‚¢‚Í‚Å‚«‚È‚¢)‚±‚Æ‚Å‚Í‚È‚­A
ƒRƒ}ƒ“ƒhƒ‰ƒCƒ“ŠÂ‹«‚Å—Í‚ð”­Šö‚·‚éƒc[ƒ‹‚Å‚ ‚邱‚ÆB
—Ⴆ‚ÎA³‹K•\Œ»‚Ń}ƒbƒ`‚µ‚½•¶Žš—ñ‚ð’uŠ·‚·‚邾‚¯‚È‚çƒeƒLƒXƒgƒGƒfƒBƒ^‚Å‚à‚Å‚«‚éB
‚ [‚»‚¤‚»‚¤AƒGƒfƒBƒ^‚ª‚ ‚ê‚Ε¶ŽšƒR[ƒh‚Ì•ÏŠ·‚à‚»‚ꂾ‚¯‚Å‚Å‚«‚éB
ŠˆàƒeƒLƒXƒgƒGƒfƒBƒ^‚ðŽg‚Á‚½‚±‚Æ‚ª‚È‚¢‚È‚çAˆê“x(³‹K•\Œ»ŒŸõ‹@”\A
•¶ŽšƒR[ƒh•ÏŠ·‹@”\‚Ì‚ ‚é)ƒeƒLƒXƒgƒGƒfƒBƒ^‚ðG‚Á‚Ä‚Ý‚é‚Æ‚¢‚¢‚©‚à‚µ‚ê‚È‚¢B

128 F
>>127‚³‚ñ
>>126‚Å‚·
‚¨”æ‚ê‚Ì‚Æ‚±‚ë‘X‚Ì‚²‰ð“š½‚É‚ ‚肪‚Æ‚¤‚²‚´‚¢‚Ü‚·
ƒRƒ“ƒo[ƒg‚͕ʂ̃c[ƒ‹‚Ås‚¤
DOSŠÂ‹«‚Å‚Ítype append.txt >> o—Íæƒtƒ@ƒCƒ‹–¼‚ŒljÁ‘‚«ž‚Ý
—¹‰ð‚µ‚Ü‚µ‚½
ƒGƒfƒBƒ^[‚ÍGŠÛƒGƒfƒBƒ^[‚ðŽg‚Á‚Ä‚¢‚Ü‚·
ƒRƒ“ƒo[ƒg‚Ío—ˆ‚é‚Ì‚Å‚·‚ªŒŸõ‚Ń}ƒbƒ`‚µ‚½•¶Žš—ñ‚Í1‰ÓŠ‚¸‚ƒRƒs[‚È‚ñ‚Å‚·
sakuraƒGƒfƒBƒ^[‚ňꊇƒRƒs[‚âØ‚èŽæ‚肪o—ˆ‚é‚Æ‹³‚¦‚Ä‚­‚ꂽ•û‚à‚¢‚Ä‚½‚Ì‚Å‚·‚ª
sakuraƒGƒfƒBƒ^[‚ÍŽŽ‚µ‚½‚±‚Æ‚ª–³‚¢‚ñ‚Å‚·
Ú‚µ‚­‚ ‚肪‚Æ‚¤‚²‚´‚¢‚Ü‚µ‚½

129 F
AAA.txt‚ðŠJ‚«h“Œ‹ž(.+?)†Žºh‚ðŒŸõ‚·‚é
ƒ}ƒbƒ`‚µ‚½•¡”‰ÓŠ‚ðˆêŠ‡‚ŃRƒs[‚µ‚ÄTEST.txt‚Ƀy[ƒXƒg‚·‚é
BBB.txt‚ðŠJ‚«h“Œ‹ž(.+?)†Žºh‚ðŒŸõ‚·‚é
ƒ}ƒbƒ`‚µ‚½•¡”‰ÓŠ‚ðˆêŠ‡‚ŃRƒs[‚µ‚ÄTEST.txt‚Ì––”ö‚Ƀy[ƒXƒg‚·‚é
CCC.txt‚ðŠJ‚«h“Œ‹ž(.+?)†Žºh‚ðŒŸõ‚·‚é
ƒ}ƒbƒ`‚µ‚½•¡”‰ÓŠ‚ðˆêŠ‡‚ŃRƒs[‚µ‚ÄTEST.txt‚Ì––”ö‚Ƀy[ƒXƒg‚·‚é
‚æ‚낵‚­‚¨Šè‚¢‚µ‚Ü‚·

130 F
>>127‚ÍŒ‹‹Çawk‚̉𓚂͂µ‚È‚¢‚Ì‚É‚È‚ñ‚Å‚µ‚Ⴕ‚á‚èo‚Ä‚«‚½‚ÌH
‚Å‚«‚È‚¢‚¶‚á‚ñ

131 F
>>130
Ž¿–â‚É‹ï‘Ì«‚ª‚È‚¢‚©‚çˆê”ʘ_‚ð‘‚¢‚½‚¾‚¯‚¾‚¯‚ÇB
>>129
awk '/“Œ‹ž(.+?)†Žº/ {print > "TEST.txt";}' AAA.txt
awk '/“Œ‹ž(.+?)†Žº/ {print >> "TEST.txt";}' BBB.txt
ˆÈ‰º“¯—l‚ÉB

132 F
>>131
ƒŒƒX‚ ‚肪‚Æ
gawk '/“Œ‹ž(.+?)†Žº/ {print > "TEST.txt";}' AAA.txt
gawk '/“Œ‹ž(.+?)†Žº/ {print >> "TEST.txt";}' BBB.txt
ƒtƒ@ƒCƒ‹–¼AƒfƒBƒŒƒNƒgƒŠ–¼A‚Ü‚½‚̓{ƒŠƒ…[ƒ€@ƒ‰ƒxƒ‹‚Ì\•¶‚ªŠÔˆá‚Á‚Ä‚¢‚Ü‚·B
gawk3.16‚Å‚ÍŽg‚¦‚È‚¢H


133 F
>>132
DOS‚̃Rƒ}ƒ“ƒhƒ‰ƒCƒ“‚ÌŽg‚¢•û‚Í‘¼Š‚Å•·‚¢‚Ä‚­‚êB

134 F
–ðŠ‚Ì‘‹Œû‚Ý‚½‚¢‚ȑΉž‚¾‚ÈB

135 F
DOS‚̃Rƒ}ƒ“ƒhƒ‰ƒCƒ“‚ɂ‚¢‚Ä‚Í‘½‚­‚ð’m‚ç‚È‚¢‚ñ‚¾‚æB

136 F
DOS‚Ìꇂ͋󔒂ðŠÜ‚ÞꇃVƒ“ƒOƒ‹ƒNƒH[ƒg‚¶‚áƒ_ƒ‚¾‚©‚ç‚ÈB
ƒ_ƒuƒ‹ƒNƒH[ƒg‚ÅŠ‡‚Á‚Ä’†‚̃R[ƒh‚Í
ƒVƒ“ƒOƒ‹ƒNƒH[ƒg‚©AƒGƒXƒP[ƒv‚µ‚ă_ƒuƒ‹ƒNƒH[ƒg“ü‚ê‚é‚©B
ˆê”ÔŠÈ’P‚È‚Ì‚ÍAƒƒ“ƒ‰ƒCƒi[‚Å‚àƒtƒ@ƒCƒ‹‚É‹N‚±‚µ‚Ä‚µ‚Ü‚¤‚±‚ÆB
gawk -f myscript.awk AAA.txt
‚Æ‚â‚Á‚Ä‚µ‚Ü‚¦‚ÎAƒVƒ“ƒOƒ‹ƒNƒH[ƒg‚Æ‚©ƒ_ƒuƒ‹ƒNƒH[ƒg‚Æ‚©‹C‚É‚·‚é•K—v‚Í‚È‚¢B

137 F
>>132
“ñ‚–â‘肪‚ ‚éB
gawk‚̳‹K•\Œ»‚Å‚Í.+?‚Æ‚¢‚¤‚Ì‚ÍŽg‚¦‚È‚¢B
cmd.exe‚Å‚ÍAƒVƒ“ƒOƒ‹ƒNƒH[ƒg‚ðˆø”‚ð
‚­‚­‚é‚Ì‚ÉŽg‚¦‚È‚¢B
‚È‚ñ‚©‚æ‚­‚í‚©‚ç‚ñ‚ªAperl‚ŃeƒLƒXƒg‚ðŠÛˆù‚Ý‚µ‚Ä‚©‚ç
ˆ—‚·‚ê‚΂¢‚¢‚ñ‚¶‚á‚È‚¢‚Ì‚©H

138 F
VisiCalc ‚Æ‚¢‚¦‚ÎAoŽn‚ß‚Ì ‚É TRS-80 —p ‚ð Radio Shack ‚ÅŒ©‚¹‚Ä‚à‚ç‚Á‚½‚ñ‚¾‚¯‚ÇAŠw¶‚¾‚Á‚½Ž„‚ɂ͉¿’l‚ª‚í‚©‚ç‚È‚©‚Á‚½‚È‚ŸB
‚Ü‚ŸA‚±‚ê‚ÉŒÀ‚炸Aw‚È‚ñ‚Å‚±‚ñ‚ȃRƒ}ƒ“ƒh‚âƒIƒvƒVƒ‡ƒ“‚ª‚ ‚é‚ñ‚¾Hx‚Á‚Ä‚Ì‚Í‘½‚¢B
Žg‚¢•û‚¶‚á‚È‚­A‚È‚º‚»‚ꂪ‚ ‚é‚Ì‚©‚ð•ïŠ‡“I‚ɉðà‚µ‚½–{‚â web site ‚Á‚Ä‚ ‚è‚Ü‚·‚©B(‚½‚Æ‚¦‚Α½‚­‚Ì unix ƒRƒ}ƒ“ƒh‚ð–Ô—…‚µ‚Ä‚¢‚é‚Æ‚©)

139 F
‚ ‚ AƒXƒŒˆá‚¢‚¾‚Á‚½B‚²‚ß‚ñ‚²‚ß‚ñB

140 F
‚È‚ñ‚Æ‚¢‚¤Œë”š

141 F
>>132 ‚à‚¤‹‚È‚¢‚©‚ÈBgawk3.1.6 + nkf2.0 Žg—p@cmd.exe
C:\work>type aaa.txt (¦EUC‚Ȃ̂ʼn»‚¯‚鎖‚ðŠm”F)
¤Û¤²¤Û¤²
ÅEþ¹æ¼¼
ÅEþ£²¹æ¼¼
ÅEþ£±£°¹æ¼¼
ÅEþ¤Û¤²¹æ¼¼
ÅEþ¤Õ¤¬¹EÅEÕ¤¬¹æ¼¼
ÅEþ£³¹æ¼¼¤ÈÅEþ£µ¹æ¼¼
C:\work>nkf -Es AAA.txt
‚Ù‚°‚Ù‚°
“Œ‹ž†Žº
“Œ‹ž‚Q†Žº
“Œ‹ž‚P‚O†Žº
“Œ‹ž‚Ù‚°†Žº
“Œ‹ž‚Ó‚ª†
“Œ‚Ó‚ª†Žº
“Œ‹ž‚R†Žº‚Æ“Œ‹ž‚T†Žº
C:\work>nkf -Es AAA.txt| gawk "/“Œ‹ž.*†Žº/{print $0}"
“Œ‹ž†Žº
“Œ‹ž‚Q†Žº
“Œ‹ž‚P‚O†Žº
“Œ‹ž‚Ù‚°†Žº
“Œ‹ž‚R†Žº‚Æ“Œ‹ž‚T†Žº
Šùo‚̒ʂ蕶Žš•ÏŠ·nkf(>>127) ³‹K•\Œ»‚̧–ñ‚ÅðŒ•ÏX(>>137)
ŽÀÛ‚ÉŽg‚¤ê‡‚Í‚±‚ñ‚ÈŠ´‚¶‚Ńoƒbƒ`ì‚é‚Æ‚©B
C:\work>nkf -Es AAA.txt| gawk "/“Œ‹ž.*†Žº/{print $0}" >>TEST.txt

142 F
‚ÆA•û–@‚ð‘‚¢‚Ä‚¨‚¢‚ăAƒŒ‚¾‚¯‚ÇA
GŠÛŽg‚Á‚Ä‚é‚È‚çgrep‚ÌŽÀs‚ÅŒŸõ‚·‚éƒtƒ@ƒCƒ‹‚É(Œ»Ý‚Ì“à—e)‚Å
ŒŸõŒ‹‰Ê‚©‚çƒtƒ@ƒCƒ‹–¼‚Æs”Ô†‚𜋎‚·‚é‚Ì‚Å‚à‚Å‚«‚»‚¤‚È‹C‚ª‚·‚éB
·‘å‚ɃXƒŒˆá‚¢‚¾‚¯‚ÇB

143 F
>>142‚³‚ñ
‚ ‚肪‚Æ
‚Ü‚¾Žv‚¤‚悤‚É‚Å‚«‚Ä‚¢‚È‚¢‚ñ‚¾
ŽQl‚É‚È‚é‚抴ŽÓ‚Å‚·

144 F
‚Ђł¦‚—‚—‚—‚—‚—‚—‚—‚—‚—‚—‚—‚—‚—‚—

145 F
‚·‚Ü‚ñŒë”š

146 F
Ž¿–â‚Å‚·I
ˆÈ‰º‚̃tƒ@ƒCƒ‹hoge‚©‚çawk‚ÅA‰¿Ši‚𔲂«o‚µ‚ćŒv’l‚ðo‚µ‚½‚¢‚ÆŽv‚Á‚Ä‚¢‚Ü‚·B
ƒtƒ@ƒCƒ‹‚Ì“à—e‚ÍA‘Ж¼‚Ɖ¿Ši‚Å‚·B‰¿Ši‚͈ê”ÔŒã‚ë‚Ì”Žš‚É‚È‚è‚Ü‚·B
----------------------
$ cat hoge
‚»‚ê‚¢‚¯I‚ ‚ñ‚Ï‚ñ‚Ü‚ñ 1000
ƒƒ^ƒ{ƒŠƒbƒN‚ðŒ‚‘Þ‚¹‚æ 1000
‰º—¬ŽÐ‰ï 1000
ã—¬ŽÐ‰ï‚Ɖº—¬ŽÐ‰ï “ú–{‚Ì‚±‚ê‚©‚ç 1000
˜_•¶ 2008 “ú–{‚Ì•ø‚¦‚é–â‘è 1000
˜_•¶ 2007 “ú–{‚Ì•ø‚¦‚é–â‘è ‰ß‹Ž–â‘èW 1000
----------------------
“‚¢‚Ì‚ªA‘Ж¼‚Ì2008‚â2007‚È‚Ç‚Ì”’l‚ªŠÜ‚Ü‚ê‚Ä‚¢‚邱‚Æ‚â‹ó”’‚ªŠÜ‚Ü‚ê‚Ä‚¢‚邱‚Æ‚Å‚·B
1s–Ú‚Ìê‡2—ñ–Ú‚ª‰¿Ši‚É‚È‚è‚Ü‚·‚ªA2s–Ú‚Ìê‡4—ñ–Ú‚ª‰¿Ši‚Æ‚È‚è‚Ü‚·B
‚±‚̂悤‚Ɉê”ÔÅŒã‚Ì—ñi‰¿Šij‚ðŽæ“¾‚µA‡Œv’l‚ðŒvŽZ‚·‚é‚É‚Í‚Ç‚¤‚·‚ê‚΂悢‚Å‚µ‚傤‚©H
‚²‹³Ž¦‚¨Šè‚¢‚¢‚½‚µ‚Ü‚·B


147 F
awk '{x+=$NF}END{print x}' hoge

148 F
x‚¶‚á‚È‚­‚Äsum‚Æ‚©‚É‚µ‚悤‚æB

149 F
ˆês–ì˜Y‚ÍŽè”i‘Å”jdŽ‹‚È‚ñ‚¶‚á‚Ü‚¢‚©

150 F
“‚¢‚Á‚ă}ƒjƒ…ƒAƒ‹“Ç‚ß‚ÎÅŒã‚Ì—v‘f‚ðŽw‚·‚à‚Ì‚ª‰½‚©‘‚¢‚Ä‚ ‚é‚ÆŽv‚¤‚ª

151 F
“Ç‚ñ‚Å‚½‚瑼l‚É‚È‚ñ‚©•·‚«‚Ü‚¹‚ñB

152 F
‚¶‚á‚ Aƒ}ƒjƒ…ƒAƒ‹“Ç‚ñ‚Å‚à‚í‚©‚ç‚È‚©‚Á‚½‚炨Žèã‚°‚©

153 F
Windows ”Å‚Ì gawk-3.1.5 ‚Å`‘o•ûŒüƒpƒCƒv‚ª‚¤‚Ü‚­“®ì‚µ‚Ü‚¹‚ñBˆÈ‰ºA
http://www.kt.rim.or.jp/~kbk/gawk-3.1/gawk.html#SEC182
‚©‚ç‚̃Tƒ“ƒvƒ‹ƒtƒ@ƒCƒ‹‚Å‚·‚ªA“r’†‚ÅŽ~‚Ü‚Á‚Ä‚µ‚Ü‚Á‚ÄA•ÔŽ–‚ª•Ô‚Á‚Ä‚«‚Ü‚¹‚ñB
BEGIN {
command = "sort"
n = split("abcdefghijklmnopqrstuvwxyz", a, "")
for (i = n; i > 0; i--)
print a[i] |& command
close(command, "to")
while ((command |& getline line) > 0)
print "got", line
close(command)
}
Cygwin ‚Ì gawk ‚Å‚Í–â‘è‚ ‚è‚Ü‚¹‚ñ‚Å‚µ‚½B

154 F
‚±‚êŽg‚¤‚Æ‚¢‚¢‚æ
ttp://www.pipeunish.jp/

155 F
‚Ç‚¤‚â‚Á‚½‚ç Cygwin ‚Ì gawk(GNU Awk 3.1.6) ‚Å print length("‚ ‚¢‚¤") ‚ª 3 ‚É‚È‚é‚Ì‚Å‚·‚©H

156 F
Windows‚̃o[ƒWƒ‡ƒ“‚­‚ç‚¢‘‚±‚¤‚ÈB‚Å‚È‚¢‚Æ’Þ‚è‚ÆŽv‚í‚ê‚é‚æ

157 F
jgawk?

158 F
gawk.dll‚Á‚ÄA‚Ü‚¾’N‚©ƒƒ“ƒe‚µ‚Ä‚­‚¾‚³‚Á‚Ä‚é‚ñ‚Å‚µ‚傤‚©H
ÅV”Ågawk‚Ìdll‚ð’T‚µ‚Ä‚é‚ñ‚Å‚·‚ªAŒ©‚‚©‚è‚Ü‚¹‚ñB
‚Ü‚½‚ÍAƒ\[ƒX‚Ìtar.gz‚©‚çdll‚ðì‚é•û–@‚ªÚ‚Á‚Ä‚¢‚éƒy[ƒW‚ð
Œä‘¶’m‚Ì•û‚ª‚¢‚ç‚Á‚µ‚á‚¢‚Ü‚µ‚½‚çA‹³‚¦‚Ä‚¢‚½‚¾‚¯‚é‚Æ•‚©‚è‚Ü‚·B

159 F
‚È‚É‚ð‚¢‚Á‚Ä‚é‚Ì‚©‚í‚©‚ç‚ñ
ƒ\[ƒX‚Ìtar.gz‚Á‚Ä‚È‚ÉH

160 F
http://ftp.gnu.org/gnu/gawk/ ‚©‚çƒ_ƒEƒ“ƒ[ƒh‚Å‚«‚égawk-*.tar.gz‚Ì‚±‚Æ‚Å‚·‚ªBB
source‚©‚çgawk.exe‚ðì‚Á‚½‚肵‚È‚¢‚Ì‚Å‚·‚©HH
dll‚Æ‘‚¢‚Ä‚¢‚é‚Ì‚Å‚í‚©‚é‚©‚Æ‚ÍŽv‚¢‚Ü‚·‚ªA
windowsŠÂ‹«‰º‚ł̘b‚Å‚·B•’i‚Ícygwin‚Åmake‚µ‚½gawk‚ðŽg‚Á‚Ä‚¢‚é‚Ì‚Å‚·‚ªA
dll‚ª‚ ‚é‚Æ‘¼‚ÌŒ¾Œê‚©‚çŒÄ‚Ño‚µ‚ÄŽg‚¦‚é‚Ì‚Å•Ö—˜‚©‚È[‚ÆŽv‚Á‚Ä‚Ü‚·B

161 F
cygwin‚Íwin—p‚̃\[ƒX‚¶‚á‚È‚¢‚©‚ç
win—p‚̃\[ƒX‚ª‚¢‚é

162 F
>>160
Ì‚ ‚Á‚½DLL”Å‚ÍìŽÒ‚ª“ÆŽ©‚Éì‚Á‚½‚à‚Ì‚Ý‚½‚¢‚Å
–{‰Æ‚É”½‰f‚³‚ê‚Ä‚È‚¢‚©‚ç–{‰Æ‚̃\[ƒX‚©‚çDLL‚ðì‚é‚Ì‚Í–³—B
DLL”ł̃\[ƒX‚ðŽQl‚É‚µ‚ÄŽ©—Í‚Åì‚é‚©
‚Å‚«‚È‚¢‚È‚çìŽÒ‚ɘA—‚µ‚Ä‹¦—Í‚ð‹‚߂邵‚©‚È‚¢B

163 F
>>160
Ž©•ª‚ʼnüC‚·‚邵‚©‚È‚¢‚¾‚ë

164 F
(ÉÍ`)@±²ÀÀÀ

165 F
>156
XP [Version 5.1.2600] ‚Å‚Â

166 F
>>153
‚Ü‚¾Œ©‚Ä‚é‚©?
‘½•ª‚È‚¨‚Á‚Ä‚é‚ÆŽv‚¤‚ñ‚ÅV‚µ‚¢‚Ì‚ÅŽŽ‚µ‚Ä‚Ý‚Ä‚­‚è‚âB

167 F
‚¤‚¨H
ìŽÒ~—Õ‚©

168 F
‚·‚ñ‚΂炷‚¡

169 F
AWK@Žg‚Á‚Ä‚P‚T”NH@‚R‚O”N‘O‚̃R[ƒh‚ª“f‚«o‚·ƒf[ƒ^‚ð‚¿‚å‚±‚Á‚ƈ—‚µ‚悤‚Æ‚µ‚Äc
FS=/[ ()]+/ ‚ÍŠú‘Ò’Ê‚è‚Ì“®‚«‚ð‚¹‚¸AFS="[ ()]+" ‚Æ‘‚©‚˂΂Ȃç‚È‚¢B
‰‚ß‚Ä’m‚Á‚½B
@ŒŸõ‚µ‚Ä‚àA‚±‚ê‚ɂ‚¢‚Ä–¾‰õ‚É‘‚¢‚Ä‚ ‚éƒy[ƒW‚ª‚È‚©‚È‚©Œ©‚‚©‚ç‚È‚©‚Á‚½‚ª
„³‹K•\Œ»’蔂ª‚»‚ꎩg‚Æ‚µ‚ÄŒ»‚ꂽ‚Æ‚«A‚»‚ê‚̓pƒ^[ƒ“’†‚ÉŒ»‚ꂽ‚©‚̂悤‚ÉA
„‚‚܂è`($0 ~ /foo/)' ‚̂悤‚É‚Ý‚È‚³‚ê‚éB
<’†—ª>
„Œ¾Œê‚Ì‚±‚Ì‹@”\‚ÍAPOSIX•W€‚܂ŃhƒLƒ…ƒƒ“ƒg‰»‚³‚ê‚È‚©‚Á‚½B
orz
@‚±‚ê‚Å‚PŽžŠÔ‚®‚ç‚¢ƒ€ƒ_‚É‚µ‚½BŽ„‚ª’m‚ç‚È‚©‚Á‚½‚¾‚¯‚Å‚·‚©HH

170 F
wƒvƒƒOƒ‰ƒ~ƒ“ƒOŒ¾ŒêAWKx‚ɂ͈ꉞڂÁ‚Ă邯‚Ç‚È
> iFS‚É‘ã“ü‚³‚ê‚éj•¶Žš—ñ‚ª1•¶Žš‚æ‚è’·‚¢‚Æ‚«‚ÍC³‹K•\Œ»‚Æ‚µ‚Ĉµ‚í‚ê‚é

171 F
ƒxƒ‹Œ¤Œn“‚ÌŒ¾Œê‚Í‹Lq‚ÌŽ©—R“x‚Í‚ ‚邪‹““®‚ª‚‚©‚݂Â炢

172 F
>>170
@hh‚ň͂ñ‚¾•¶Žš—ñ‚ª³‹K•\Œ»‚Æ‚µ‚Ĉµ‚í‚ê‚é@‚Æ‚¢‚¤‚±‚Æ‚Æ
@//‚ň͂ñ‚¾³‹K•\Œ»’蔂ő‚¢‚Ä‚Í‚¢‚¯‚È‚¢@‚Æ‚¢‚¤‚±‚Æ‚Í“¯‚¶‚Å‚Í‚È‚¢B
ŽÀÛAsplitŠÖ”‚Ì@‘æ‚Rˆø”‚É—^‚¦‚鳋K•\Œ»‚Í@‚Ç‚¿‚ç‚Å‚à“®‚­
@‚Þ‚Þ‚ÞA‚±‚±‚Å‚Í($0~/foo/)‚É’u‚«Š·‚¦‚Ä•]‰¿‚³‚ê‚È‚¢‚ñ‚¾c
171‚̈ӌ©‚ª³‚µ‚¢‚悤‚¾‚Ë@ƒ`ƒƒƒ“ƒ`ƒƒƒ“


173 F
•¡”‚̃tƒ@ƒCƒ‹‚Ì“Ç‚Ýž‚Ý‚Á‚Ä‚Å‚«‚Ü‚·‚©H
print ƒtƒ@ƒCƒ‹1‚Ì$2 ƒtƒ@ƒCƒ‹2‚Ì$1
‚Ý‚½‚¢‚ÈŠ´‚¶‚Å

174 F
>>173
paste‚ÅŒq‚¢‚¶‚áƒ_ƒ?
Ž„‚Í‚æ‚­‚â‚邯‚ÇB
‰¼‚Ƀtƒ@ƒCƒ‹1‚ª5ƒJƒ‰ƒ€ŒÅ’è‚È‚çA
paste ƒtƒ@ƒCƒ‹1 ƒtƒ@ƒCƒ‹2| awk '{print $2 $6;}'
‚Ä‚ÈŠ´‚¶‚ÅB
# ƒJƒ‰ƒ€”‰Â•Ï‚È‚ç‚à‚¤ˆê”P‚è•K—v‚¾‚¯‚Ç‚ËB

175 F
>>173
awk‚¾‚¯‚Å‚â‚肽‚¢‚È‚çgetline‚ðŽg‚¦‚΂ł«‚éB

176 F
awk‚·‚²‚¢•Ö—˜‚ÅAgnuplot‚Æ‘g‚݇‚킹‚ÄExcel‚©‚ç‰ð•ú‚³‚ê‚‚‚ ‚è‚Ü‚·B
ã‚Ì•û‚É‚ ‚Á‚½DFA‚ÆNFAŽg‚Á‚Ă鎖‚©‚ç‚­‚éˆá‚¢‚Á‚Ä‚È‚ñ‚Å‚·‚©H

177 F
>>176
ˆê”Ԃ̈Ⴂ‚ÍADFA‚¾‚ÆŒã•ûŽQÆ‚ª‚Å‚«‚È‚¢‚±‚Æ‚©‚ÈB
‚Æ‚è‚ ‚¦‚¸
DFA
‘O€”õ‚ÉŽèŠÔ‚ðŠ|‚¯‚邯‚Lj—‚»‚Ì‚à‚Ì‚Í‘‚¢
NFA
‘¦À‚Ɉ—‚ðŽn‚߂邯‚ÇAˆ—‚ÉŽžŠÔ‚ª‚©‚©‚éꇂª‚ ‚éB
‚®‚ç‚¢‚Él‚¦‚Ä‚¨‚¯‚΂¢‚¢‚ÆŽv‚¤B

178 F
•ÛŽç

179 F
sh + awk ‚Í–¾‚ç‚©‚ÉŠÈ’P‚¾‚ÆŽv‚¤B
sh + awk ‚Åo—ˆ‚邱‚Æ‚ð perl ‚Ì‚Ý‚Å‹Lq‚·‚él‚Ì‹CŽ‚¿‚ª‚Ç‚¤‚µ‚Ä‚à—‰ðo—ˆ‚È‚¢B
‚½‚¾Aƒlƒbƒgƒ[ƒNƒvƒƒOƒ‰ƒ~ƒ“ƒOˆÈã‚É‚È‚é‚ÆC, perl, ruby ‚É‚È‚ç‚´‚é‚𓾂Ȃ¢‚¯‚ÇB
ƒ}ƒVƒ“’P‘Ì‚Å‚ÌŽíX‚̎葱‚«‹Lq‚¾‚ÆA
sh + awk ‚ª‚â‚Á‚Ï‚èˆê”ÔŠ®Œ‹‚É‚È‚é‚ÆŽv‚¤‚ñ‚¾‚¯‚Ç‚È`B

180 F
‚¨‚ê‚àawk‚Å‚Å‚«‚邱‚Æ‚È‚çawk‚Å‚â‚éB
‚Å‚à‚ ‚Ü‚è‚ɃgƒŠƒbƒL[‚È‚±‚Æ‚É‚È‚è‚»‚¤‚¾‚Á‚½‚çperl‚Å‚â‚Á‚½‚è‚·‚é‚©‚ÈB

181 F
l‚É“n‚·‰Â”\«‚ª‚ ‚é‚È‚çAawk‚ÍŒ‹\‚‚炢‚±‚Æ‚ª‚ ‚éB
Perl‚Å‚â‚ê‚Ίî–{“I‚É–â‘è‚È‚¢‚©‚çAPerl‚Å‘‚­•È‚ª‚‚­B
ShellScript‚Å‚¢‚Á‚½‚ñŽg‚¤‚¾‚¯‚È‚çAawk‚Í•Ö—˜‚¾‚¯‚ÇB

182 F
>>180
‰´‚à@AWK ‚Å‚Å‚«‚é‚È‚çAWKB
‚Æl‚¦‚é‚Æ@ƒoƒCƒiƒŠ[‚̃f[ƒ^‚¢‚¶‚éˆÈŠO‚ÍAWK‚Å‚Å‚«‚é‚Ì‚Å‚Íc
i­‚È‚­‚Æ‚à@‰´‚É“úí‚̃j[ƒd‚Å‚Í@‚»‚¤‚¾j

183 F
>>182
“¯Š´B‚½‚¾ƒoƒCƒiƒŠ‚ÍŽd•û‚È‚¢‚É‚µ‚Ä‚àA
‘S”¼Šp¬Ý‚̌Œ蒷ƒtƒH[ƒ}ƒbƒg‚ªˆµ‚¢‚É‚­‚¢‚ñ‚¾‚æ‚ÈB
ASCII‚É‚·‚é‚Æ‘SŠp‚Ì‚Ý•”•ª‚ªˆ—‚µ‚É‚­‚¢‚µA
SJIS‚Æ‚©‚É‚·‚é‚Ƴ‚µ‚­Ø‚èo‚¹‚È‚¢‚µ¥¥¥
‚ ‚ê‚Í‚È‚ñ‚Æ‚©‚È‚ç‚ñ‚à‚Ì‚©‚ÈB

184 F
‚â‚Á‚Ï‚è ASCII ‚¾‚¯‚Ì–â‘è‚É‚µ‚Ä‚¨‚¢‚½•û‚ª–³“ïB

185 F
ttp://www.kt.rim.or.jp/~kbk/gawk-3.1/
‚Ń_ƒEƒ\‚Å‚«‚é‚Ì‚ªASCII‚ÆSJIS‚ð‚¤‚Ü‚­ˆµ‚¦‚é‚â‚‚À‚á‚Ë‚ÌH

186 F
>>185
‚¢‚âA‚»‚ÌgawkŽg‚Á‚Ă邯‚ÇA‘S”¼Šp¬Ý‚̌Œ蒷‚Í¢‚é‚Í‚¸B
—¼•û•ÊX‚È‚ç–â‘è‚È‚­ˆµ‚¦‚邯‚ÇA“¯Žž‚ɂ͈µ‚¦‚È‚¢B
—Ⴆ‚ÎBSJIS‚Ps5ƒoƒCƒg+‰üs‚̌Œ蒷ƒtƒ@ƒCƒ‹‚Å
‚Ps‚Í‚Q€–Úia:‘S”¼Šp¬Ý4ƒoƒCƒg b:”¼Šp‚Ì‚Ý1ƒoƒCƒgj‚̃tƒ@ƒCƒ‹‚ª‚ ‚é‚Æ‚«B
asciiƒ‚[ƒh‚È‚ça, b‚ð؂蕪‚¯‚ç‚ê‚邪a‚Ì‘SŠp•¶Žš‚͈—‚Å‚«‚È‚¢B
sjisƒ‚[ƒh‚È‚ça, b‚ð؂蕪‚¯‚ç‚ê‚È‚¢B
”Y‚Ü‚µ‚¢‚Ì‚ÍA€–Ú‚ð؂蕪‚¯‚éƒXƒNƒŠƒvƒg‚ðascii ƒIƒvƒVƒ‡ƒ“‚Å‹N“®‚µ‚Ä
o—ÍŒ‹‰Ê‚ðsjis‚ň—‚·‚ê‚Îi‚ß‚ñ‚Ç‚­‚³‚¢‚¯‚ÇjŒ»ó‚ň—‚Å‚«‚Ä‚µ‚Ü‚¤B
‚Ì‚ÅAƒ}ƒjƒ…ƒAƒ‹‚É‘‚¢‚Ä‚ ‚é’Ê‚èAìŽÒ‚ð‚¨‚Ë‚ª‚¢‚·‚ê‚Ή”\«‚Í‚ ‚é‚©‚à‚µ‚ê‚È‚¢‚ªA
‚¨Šè‚¢‚·‚é‚Ì‚ªçSçO‚í‚ê‚銴‚¶‚È‚Ì‚ËB

187 F
awk‚ÍŽž‘ã‚ÌŠÖ”‚¾‚©‚çŽg‚í‚ê‚È‚­‚È‚Á‚Ä‚¢‚­‚ñ‚¾‚ë‚È‚ 

188 F
UTF-8‚ÌꇂłàŒÅ’è’·‚Í”¼Šp•‚µ‚©‘Ήž‚Å‚«‚Ä‚È‚¢B
•¶Žš”‚ƃoƒCƒg”‚Æ•\Ž¦•‚Æ‚©A“ú–{Œê‚Í–Ê“|‚¾‚Ì‚¤B
length()‚Æ‚©‚ŃoƒCƒg”‚ðE‚¦‚È‚¢‚©‚玩‘O‚ň—‚à‚â‚è‚É‚­‚¢B

189 F
>>188
ˆêu”[“¾‚µ‚©‚¯‚½‚¯‚ÇB
—âÂÉl‚¦‚é‚ÆA‚»‚à‚»‚à‚P•¶Žš‚ª‰Â•Ï’·‚Å‚ ‚éUTF8‚ð
ŒÅ’è’·ƒtƒ@ƒCƒ‹‚Ì•¶ŽšƒR[ƒh‚ÉŽg‚¨‚¤‚Æl‚¦‚½“z‚ð’÷‚ßã‚°‚Ä
‹ƒ‚­‚Ù‚Ç–â‚¢‹l‚ß‚é•û‚ªæ‚¾‚ÆŽv‚¤‚͉̂´‚¾‚¯H
l‚¦‚Ä‚àl‚¦‚Ä‚àƒƒŠƒbƒg‚ªŽv‚¢‚‚©‚È‚¢‚æc

190 F
>>189
‚Ù‚Æ‚ñ‚Ç‚Ì•¶ŽšƒR[ƒh‚ª‰Â•Ï’·‚¾‚©‚ç‚È‚ B
‘Š‘ΓI‚ÉŒ©‚ê‚΃}ƒV‚È•û‚É“ü‚é‚ñ‚¶‚á‚È‚¢?
ƒzƒXƒg‚ª—‚Þ‚Æ•¶ŽšƒR[ƒhŽü‚è‚͔ߎS‚¾‚æc
ƒzƒXƒg‚¶‚á‚È‚¢‚È‚ç‚»‚à‚»‚àŒÅ’è’·‚¶‚á‚È‚­‚Ä—Ç‚¢‚ñ‚¾‚¯‚Ç‚ËB

191 F
‚ ‚éƒtƒBƒ‹ƒ^ƒXƒNƒŠƒvƒg‚ðgawk‚Å‘‚¢‚Ä‚¢‚é‚Ì‚Å‚·‚ª
•¶Žš‚̃R[ƒh‚ð®”’l‚É•ÏŠ·‚µ‚悤‚Æ‚µ‚Ä‚¤‚Ü‚­‚¢‚«‚Ü‚¹‚ñ
‚½‚Æ‚¦‚Îucv‚Æ‚¢‚¤•¶Žš‚̃R[ƒh‚ð®”’l‚É‚µ‚悤‚Æ‚µ‚Ä
BEGIN {
@testChar = "c";
@printf("testChar=%d\n",testChar);
}
‚̂悤‚É‚µ‚Ä‚àutestChar=0v‚Æ•\Ž¦‚³‚ê‚Ä‚µ‚Ü‚¢‚Ü‚·
—Ç‚¢•û–@‚ª‚ ‚ê‚΂¨‹³‚¦‚­‚¾‚³‚¢

192 F
>>191
awklib ‚É ord ‚Á‚ă†[ƒU[’è‹`‚̃‰ƒCƒuƒ‰ƒŠŠÖ”‚ª‚ ‚é‚©‚ç‚»‚ê‚ðŽg‚¤B
Ž©‘O‚Åì‚Á‚Ä‚à‚¢‚¢‚¯‚Ç‚ËB
‚­‚킵‚­‚Í info gawk ‚Å’²‚ׂÄB

193 F
>>192
‚ ‚肪‚Æ‚¤‚²‚´‚¢‚Ü‚·
‘‘¬ŒŸ“¢‚µ‚Ä‚Ý‚Ü‚·

194 F
>>192
ttp://www.kt.rim.or.jp/~kbk/gawk-30/gawk_16.html
‚É‚ ‚Á‚½‚à‚Ì‚ðŽŽ‚µ‚Ä‚Ý‚Ü‚µ‚½.Šú‘Ò‚Ç‚¨‚è‚Ì“®ì‚ð‚µ‚Ä‚­‚ê‚Ü‚·.
‚Ç‚¤‚à‚ ‚肪‚Æ‚¤‚²‚´‚¢‚Ü‚µ‚½.

195 F
“ü—Í“à—e‚ðawk‚Ŷ¬‚·‚邱‚Æ‚Ío—ˆ‚Ü‚·‚Å‚µ‚傤‚©
‚à‚µ‚­‚ÍBEGIN“™‚̃uƒƒbƒN“à‚Å•¶Žš—ñ‚𶬂µ‚Ä
‚»‚Ì•¶Žš—ñ‚̃pƒ^[ƒ“–ˆ‚É•ªŠòAƒtƒB[ƒ‹ƒh‚ðŽg‚Á‚Ă̈—
i—v‚Íawk‚É“ü—̓tƒ@ƒCƒ‹“n‚µ‚½Žž‚ÉŠÈ’P‚É‘‚¯‚鈗j
‚ðŠÈ’P‚É‘‚­‚±‚Æ‚Ío—ˆ‚é‚Ì‚Å‚µ‚傤‚©
—Ⴆ‚Îc‚Ç‚ñ‚Ȉ—‚ª“KØ‚Èà–¾‚©”»‚è‚Ü‚¹‚ñ‚ª
BEGIN{for(i=0;i<10;i++) print int(rand()*10),int(rand()*10),int(rand()*10)}
‚ÌŒ‹‰Ê‚ɑ΂µ‚Ä
$1+$2+$3<10{ print $1+$2+$3 }
$1+$2+$3>=10{ print ($1+$2+$3) % 10 }
c‚Æ‚©‚»‚ñ‚ÈŠ´‚¶‚ÅAƒeƒLƒXƒg‚𶬂µ‚½Œ‹‰Ê‚ɑ΂µ‚Ä
ƒtƒBƒ‹ƒ^[‚Æ‚µ‚Ä”äŠrŽ®‚ⳋK•\Œ»‚Å•ªŠò‚µ‚ÄAƒtƒB[ƒ‹ƒh‚ðŽg‚Á‚Ĉ—‚·‚銴‚¶‚Å‚·B
‚â‚Á‚Ï‚èƒoƒbƒ`ƒtƒ@ƒCƒ‹‚Æawkƒtƒ@ƒCƒ‹‚ð‚¢‚­‚‚àì‚Á‚½‚è
ˆêsˆês‚ɑ΂µ‚Äif•¶‚Å•ªŠò‚µ‚½‚èsplit‚Å•ªŠ„‚·‚邵‚©–³‚¢‚Å‚·‚©‚ËcB

196 F
>>195
Š¸‚¦‚Ä“ü—͂𶬂µ‚½‚¢‚Ì‚È‚çAawk‚ðƒpƒCƒv‚ÅŒq‚°‚΂¢‚¢‚ÆŽv‚¤B
‚»‚¤‚Å‚Í‚È‚­A’P‚É—”‚ň—‚ðU‚蕪‚¯‚½‚¢‚Ì‚È‚ç•’Ê‚Éif•¶‚Å‚¢‚¢‚ÆŽv‚¤B
‚»‚ê‚Í‚³‚Ä‚¨‚«A
--
$1+$2+$3<10{ print $1+$2+$3 }
$1+$2+$3>=10{ print ($1+$2+$3) % 10 }
--
‚Í•Ê‚Éã‚ÌðŒŽ®‚Í—v‚ç‚ñ‚¾‚ëBˆêŒ…‚Ì”’l‚ð10‚ÅŠ„‚Á‚½—]‚è‚ÍŒ³‚Ì‚Ü‚Ü‚¾‚©‚ç‚ÈB

197 F
>196
‚¢‚â‚ ‚­‚Ü‚Å—á‘è‚È‚Ì‚Å“à—e‚Í[‚­l‚¦‚È‚¢‚Å‚­‚¾‚³‚¢corz
•’Ê‚Éif•¶‚Æ‚ÍŒ¾‚¤‚à‚Ì‚ÌAÜŠpawk‚ª•W€‚Å”õ‚¦‚Ä‚é•Ö—˜‚È‹@”\‚𖳎‹‚µ‚Äç’·‚È‘‚«•û‚·‚é‚Ì‚à“‚µ
‚©‚ÆŒ¾‚Á‚Ä.awkƒtƒ@ƒCƒ‹•¡”ŒÂ‚ƃoƒbƒ`‚ÅAƒpƒCƒv‚ł‚Ȃ°‚Ĉ—‚·‚é‚Ì‚àc‚¤`‚ñA‚Æ‚È‚Á‚Ä‚µ‚Ü‚¤B
—Ç‚¢‘‚«•û–³‚¢‚©‚È‚Ÿ‚ÆŽv‚Á‚½‚Ì‚Å•·‚¢‚Ä‚Ý‚½‚Ì‚Å‚·‚ªAif‚Æsplit‚ÅŠæ’£‚è‚Ü‚·B

198 F
Ž¿–₪‚æ‚­‚í‚©‚ç‚ñ‚Ì‚¾‚ªABEGIN•”‚Ŷ¬‚µ‚½ƒtƒ@ƒCƒ‹‚ðˆ—•”‚ňµ‚¢‚½‚¢‚Æ‚¢‚¤‚±‚Æ‚©‚ÈH
—Ⴆ‚ÎA
gawk 'BEGIN{ ARGV[1]="in_file.txt"; ARGC=2; }{ print }'
‚Á‚Ä‚â‚Á‚½‚ç in_file.txt ‚ð•\Ž¦‚Å‚«‚邼‚¢

199 F
>198
III
–Ú‚©‚ç—Ø‚Å‚·B
‚»‚Á‚©Aƒtƒ@ƒCƒ‹¶¬‚µ‚¿‚Ⴆ‚Έꔭ‚Ås‚¯‚é‚Ì‚©c‚â‚Á‚Ä‚Ý‚Ü‚·

200 F
‚¤‚°Aˆê’Uƒtƒ@ƒCƒ‹‚ðì‚é‚Ì‚Í‚ ‚è‚È‚Ì‚©‚æB
if‚ðŽg‚¤‚Ì‚Íç’·‚È‚Ì‚ÉAƒtƒ@ƒCƒ‹‚ðì‚é‚Ì‚Íç’·‚¶‚á‚È‚¢‚Á‚Ä‚Ç‚ñ‚ȃZƒ“ƒX‚È‚ñ‚¾B

201 F
>200
“ü—̓f[ƒ^‚Í‹K‘¥«‚Ì‚ ‚é‚à‚Ì‚ÅA¶¬‚µ‚Ä‚µ‚Ü‚¦‚邯‚Ç
‚»‚ê‚ɑ΂µ‚Ä‚Ì•ªŠò‚Í‘½‚¢c‚Æ‚¢‚¤ê‡
if‚âsplit‚ð—…—ñ‚·‚é‚æ‚è‚àAawk‚ªŒ³XŽ‚Á‚Ä‚é
ƒpƒ^[ƒ“‚ƃtƒB[ƒ‹ƒh•ªŠ„‚ðŽg‚Á‚½•û‚ª
ƒXƒbƒLƒŠ‚·‚é‚ÆŽv‚¤‚Ì‚Å‚·‚ªŠÔˆá‚Á‚Ä‚é‚Å‚µ‚傤‚©cB

202 F
>>201
•Ê‚É‚¢‚¢‚ñ‚¶‚á‚Ë?
‹‘å‚È’†ŠÔƒtƒ@ƒCƒ‹‚ðì‚é‚Á‚Ă킯‚Å‚à‚È‚¢‚ñ‚¾‚낤‚µB
‚Ü‚ŸAŽŸ‚Ì——R‚ÅŽ„‚Í’†ŠÔƒtƒ@ƒCƒ‹‚ðì‚é‚Ì‚Í”ð‚¯‚é‚¯‚Ç‚ËB
Eƒtƒ‹ƒpƒX‚ðŽw’肵‚È‚¢ê‡AƒJƒŒƒ“ƒgƒfƒBƒŒƒNƒgƒŠ‚É‘‚«ž‚ÝŒ ŒÀ‚ª‚ ‚é•ÛႪ‚È‚¢B
E‚»‚à‚»‚à“¯–¼ƒtƒ@ƒCƒ‹‚ª‘¶Ý‚µ‚Ä‚¢‚Ä‘‚«ž‚ÝŒ ŒÀ‚ª‚È‚¢‚©‚à’m‚ê‚È‚¢B
E‚Â[‚©A“¯Žž‚É2Œ“®‚©‚µ‚½‚çƒoƒbƒeƒBƒ“ƒO‚µ‚Ä‚µ‚Ü‚¤B
E‚¾‚©‚ç‚ÆŒ¾‚Á‚ÄAˆêXƒ†ƒj[ƒN‚È–¼‘O‚̃tƒ@ƒCƒ‹–¼‚𶬂·‚é‚Ì‚à–Ê“|‚¾B
E‚µ‚©‚àA’†ŠÔƒtƒ@ƒCƒ‹‚ÍŒã‚ÅÁ‚µ‚Ä‚¨‚­•K—v‚ª‚ ‚é‚©‚à‚µ‚ê‚È‚¢B
‚»‚ê‚ÆAŽ©‘O‚Å“ü—͂𶬂·‚é‚È‚çAʼn‚©‚番Š„‚³‚ꂽó‘Ô‚Åì‚ê‚΂¢‚¢‚©‚çsplit‚Í—v‚ç‚È‚¢‚ËB
ƒpƒ^[ƒ“‚ðŽg‚¤‚©if‚ðŽg‚¤‚©‚ÍŽï–¡‚Ì–â‘è‚̂悤‚È‹C‚ª‚·‚邯‚ÇB
# $1+$2+$3<10{print;}‚Æ‘‚­‚©if($1+$2+$3<10){print;}‚Æ‘‚­‚©‚̈Ⴂ‚¾‚à‚ñ‚ËB

203 F
FXl‚¦•û‚ª‚ ‚é‚Ì‚ËB
Ž©•ª‚È‚çƒgƒŠƒbƒL[‚È×H‚µ‚Ä‚P‚‚Ɏû‚ß‚¸•ªŠ„‚µ‚ÄifŽg‚킸‚É‘‚­‚¯‚ÇB
Žè‘‚­ƒJƒ^‚ð‚‚¯‚ç‚ê‚é‚Ì‚ªawk‚Ì—Ç‚¢Š‚¾‚ÆŽv‚¤‚µA
‹ZI‚É‘–‚é‚ƊԈႢ‚È‚­–Y‚ê‚é‚̂Ńƒ“ƒe•s‰Â”\‚É‚È‚é‰Â”\«‘å
‚ÜA‚»‚ê‚Í‚»‚ê‚Æ‚µ‚Ä>>198‚̓pƒYƒ‹“I‚È–Ê”’‚³‚ª‚ ‚Á‚Ä—Ç‚¢‚ËB

204 F
>202
‚¤`‚ñAŒ¾‚í‚ê‚Ä‚Ý‚ê‚΂»‚¤‚©‚àB
ˆê‰žA¡‰ñ‚Ì‚ÍŽdŽ–‚ÅŽg‚¤‚킯‚Å‚à‚È‚¯‚ê‚Α¼l‚ÉŽg‚Á‚Ä‚à‚炤—\’è‚à‚È‚¢
Š®‘S‚ÈŒÂl—pƒXƒNƒŠƒvƒg‚È‚Ì‚Å‚Ç‚¤‚É‚Å‚à‚È‚è‚Ü‚·‚ª
‚±‚ꂪ‹Æ–±‚⎩•ªˆÈŠO‚àŽg‚¤‚à‚Ì‚Å‚ ‚ê‚Αf’¼‚Éif‚È‚ñ‚Å‚µ‚傤‚ËB

205 F
2008/09/15 13:17 61 20080915142145.txt
2008/09/16 13:17 316 2008091611529.txt
2008/09/22 20:09 24,028 2008_0922asahiindex.txt
2008/09/22 12:57 1,545 clean.txt
‚Æ‚¢‚¤ƒtƒ@ƒCƒ‹ˆê——‚©‚çAgawk‚Å¡“ú‚Ì“ú•t‚̃tƒ@ƒCƒ‹‚¾‚¯”²‚«o‚·‚É‚Í‚Ç‚¤‚·‚è‚á‚¢‚¢‚ñ‚¾‚Á‚¯?
BEGIN{month = strftime("%m",systime()); date = strftime("%d",systime())}
/month/ && /date/ {print $0}
‚Å‚¢‚¢‚©‚ÆŽv‚Á‚½‚çA/ /‚Ì‚È‚©‚Émonth‚Æ‚©‚ÍŽg‚¦‚È‚¢‚炵‚¢B
/strftime("%d",systime())/ {print $0}
‚Ƃׂ½‘‚«‚µ‚Ä‚à‚¾‚ßB
‚Ç–Y‚ê’†Bƒwƒ‹ƒvƒ~[B

206 F
BEGIN{date=strftime("%m/%d")} $0 ~ date {print $0}

207 F
>>206
thanks!

208 F
Ž¿–â‚Å‚·B
“ü—Í’†‚̃tƒ@ƒCƒ‹–¼‚ÍFILENAME‚ɃZƒbƒg‚³‚ê‚Ü‚·‚ªA
“ü—Í’†‚̃tƒ@ƒCƒ‹‚̃pƒX‚ðŽæ“¾‚·‚é‚É‚Í‚Ç‚¤‚µ‚½‚ç‚æ‚¢‚Å‚·‚©B

209 F
>>208
FILENAME‚Å“¾‚ç‚ê‚éî•ñ‚ª‘S‚ÄBƒtƒ‹ƒpƒX‚ª—~‚µ‚¢‚Æ‚¢‚¤‚±‚Æ‚È‚çA
cwd‚ðŽæ“¾‚µ‚Ä‚»‚±‚©‚ç‚Ì‘Š‘΃pƒX‚ªFILENAMEB

210 F

awk‚ÌŒ‹‰Ê‚ð set ‚©@setenv ‚Ì•Ï”‚É‘ã“ü‚µ‚½‚¢‚Å‚·B
awk '{ print $1+ $3 }' test.txt
‚Å”’l‚ªo‚Ü‚·B
‚±‚ÌŒ‹‰Ê‚ð•Ï”‚É‘ã“ü‚·‚é‚É‚Í‚Ç‚¤‚µ‚½‚ç‚¢‚¢‚ñ‚Å‚µ‚傤‚©H
set tmp=`awk '{ $1+ $3 }' test.txt`
‚±‚ꂾ‚ÆãŽè‚­‚¢‚«‚Ü‚¹‚ñBprint ‚Í‚»‚Ì‚Ü‚Ü‚Å‚¢‚¢‚Ì‚Å‚µ‚傤‚©H

211 F
‚È‚ñ‚Å print ‚ðÈ—ª‚Å‚«‚é‚Æl‚¦‚½‚Ì‚©‚ª“䂾‚ª

212 F
>print ‚Í‚»‚Ì‚Ü‚Ü‚Å‚¢‚¢‚Ì‚Å‚µ‚傤‚©H
‚Ü‚¸ŽŽ‚¹‚æ‚—

213 F
V‹IŒ³ŽÐ‚̃vƒƒOƒ‰ƒ~ƒ“ƒOŒ¾Œêawk‚ª‚Ç‚±‚à”„‚èØ‚ê‚È‚ñ‚¾‚¯‚Ç
‚à‚¤“ü‚ç‚È‚¢‚Ì‚©‚È

214 F
>>211
print‚͉æ–Ê•\Ž¦‚·‚é‚à‚̨•Ï”‚É“ü‚ê‚邾‚¯‚È‚ç•s—v
c‚ÆŽv‚Á‚½‚ñ‚¶‚á“à‰È‚Ë

215 F
ƒJƒ“ƒ}‹æØ‚è‚̃f[ƒ^ƒtƒ@ƒCƒ‹‚ª‚ ‚èA‚»‚Ì’†‚ÅA‘æ‚PƒtƒB[ƒ‹ƒh‚Æ‘æ‚RƒtƒB[ƒ‹ƒh“à‚É‚à‚µ
Žq‰¹AŽq‰¹AŽq‰¹A•ê‰¹‚ª‘¶Ý‚·‚ê‚΂»‚Ìs‚¾‚¯”²‚«o‚·ƒI[ƒN‚̃XƒNƒŠƒvƒgƒtƒ@ƒCƒ‹‚ð‚‚­‚肽‚¢‚Ì‚Å‚·‚ª‚Ç‚¤‚·‚ê‚΂悢‚Å‚·‚©

216 F
>>215
ƒf[ƒ^ƒtƒ@ƒCƒ‹‚̃Tƒ“ƒvƒ‹‚Æ”²‚«o‚µ‚½‚¢sƒˆƒ

217 F
‚±‚ñ‚ÈŠ´‚¶‚Å‚·
takeshi,fiad,fdjioaf,fdjsoafdsi©ŠY“–‚È‚µj
dddacea,fsaofsa,rrra,fjisaofdjsaiddda‚Ærrra‚ªŠY“–j
aexxxu,dsoifsa,yyyuo,fjsaofaixxxu‚Æyyyu‚ªŠY“–j

218 F
ƒI[ƒNƒXƒNƒŠƒvƒg‚ðŽÀs‚·‚é‚Æî•ñ‚ð•\Ž¦‚·‚é‚悤‚É‚µ‚½‚Ì‚Å‚·‚ª‚Ps–Ú‚ÆÅŒã‚Ìs‚¾‚¯‚ð•\Ž¦‚µ‚È‚¢‚悤‚É‚·‚é‚É‚Í
END“à‚ɉ½‚Ä‘‚¯‚΋X‚µ‚¢‚Å‚µ‚傤‚©

219 F
>>215
BEGIN{FS=","}
function term_check(term, lower_term) # lower_term ‚Í‹ÇŠ•Ï”
{
lower_term=tolower(term)
if(lower_term ~ /[bcdfghjklmnpqrstvwxyz][bcdfghjklmnpqrstvwxyz][bcdfghjklmnpqrstvwxyz][aiueo]/) return 1
return 0
}
{
if(term_check($1) && term_check($3)) print
}
ƒpƒ^[ƒ“ŒJ‚è•Ô‚µ‚Á‚Ä {3} ‚Æ‚©‚Å‚¢‚¯‚é‚Í‚¸‚È‚ñ‚¾‚ª
‘‚«•û’m‚ç‚È‚¢‚̂ŃRƒsƒy‚µ‚½‚—

220 F
>>218
’€ŽŸo—Í‚µ‚Ä‚éH
END ‚Å‚Ü‚Æ‚ß‚Äo—Í‚µ‚Ä‚éH

221 F
>>218
1s‚¸‚ƒoƒbƒtƒ@ƒŠƒ“ƒO‚µ‚ÄAŽŸ‚Ìs‚Ì“ü—Í‚Å‘O‚Ìs‚ðo—Í‚·‚ê‚ÎÅŒã‚Ìs‚ÍÁ‚¦‚Ä‚È‚­‚È‚éB
awk 'NR > 2 {print buffer;} NR > 1 {buffer = $0;}'

222 F
>>215
gawk‚È‚ç
awk -F "," -v r="[bcdfghj-np-tv-z]{3}[aiueo]" --posix '$1 ~ r && $3 ~ r'
$1‚Æ$3‚Ç‚¿‚ç‚©ˆê•û‚É‚ ‚ê‚΂¢‚¢‚È‚ç&&‚ð||‚É•Ï‚¦‚Ä‚Ë

223 F
>>219
•‚©‚è‚Ü‚µ‚½I

224 F
o—ˆ‚Ü‚µ‚½@‚ ‚肪‚Æ‚¤‚²‚´‚¢‚Ü‚·

225 F
ž‚Ý“ü‚Á‚Ä‚Ä®—‚Å‚«‚È‚¢‚Ì‚Å‹³‚¦‚Ä‚­‚¾‚³‚¢B
E‘Îۂ̃eƒLƒXƒg‚Í2s–Ú‚ª‚È‚¢(1s–Ú‚µ‚©‚È‚¢)‚©‚Â
E1s–ڂ͂Ђ炪‚ȃJƒ^ƒJƒiŠ¿Žš‚Å15•¶ŽšˆÈ“à
‚Æ‚¢‚¤ðŒ‚ð‘‚­‚Ì‚Á‚ÄAŽŸ‚̂悤‚É‚µ‚½‚Ì‚Å‚·‚ªA‚¤‚Ü‚­ƒqƒbƒg‚µ‚Ü‚¹‚ñB
‚Ç‚¤‘‚¯‚΂¢‚¢‚Å‚µ‚傤?
NR==2 && length($0) == 0 && NR==1 && /[‚Ÿ-‚ñƒ@-ƒ–ˆŸ-˜r]{1,15}/

226 F
>>225
NR == 2 && NR == 1‚¶‚áAâ‘ά—§‚µ‚È‚¢‚¾‚ëB

227 F
awk‚Ís‚ð1s‚¸‚ˆ—‚·‚é‚©‚çAŽ–‘O‚Ƀg[ƒ^ƒ‹s”‚ð’m‚邱‚Æ‚Í‚Å‚«‚È‚¢B
ƒg[ƒ^ƒ‹s”‚ª1s‚Å‚ ‚邱‚Æ‚ð•ÛØ‚µ‚½‚¢‚È‚çAENDƒuƒƒbƒN‚ň—‚·‚邵‚©‚È‚¢B

228 F
>Ž–‘O‚Ƀg[ƒ^ƒ‹s”‚ð’m‚邱‚Æ‚Í‚Å‚«‚È‚¢
BEGIN•”‚Å”‚¦‚ê‚ÎH

229 F
>>228
‚Ç‚¤‚â‚Á‚Ä? ‘ÎÛ‚ªƒtƒ@ƒCƒ‹‚Å‚ ‚é•ÛØ‚ª‚ ‚é‚È‚çwc‚Å‚àŒÄ‚ׂ΂¢‚¢‚¯‚Ç‚»‚ê‚È‚çawk‚Å‚â‚é•K—v‚³‚¦‚È‚¢‚æ‚ËB

230 F
{ a = $0 }
END { if (NR == 1 && a ~ /re/) print a }
‚Æ‚©?

231 F
‚Ç‚È‚½‚©A”CˆÓƒrƒbƒg•‚Ì2‚Ì•â”HEX‚ðDEC‚É•ÏŠ·‚·‚éƒvƒƒOƒ‰ƒ€‚ð‘‚¢‚Ä‚à‚炦‚Ü‚¹‚Ê‚©H

232 F
Žd—l‚ª•s–¾Šm‚È‚Æ‚±‚낪‚ ‚邵A‚È‚É‚æ‚è‚È‚ñ‚Åawk‚Å?

233 F
>>232
‚±‚±‚ªawkƒXƒŒ‚¾‚©‚ç‚Å‚µ‚åB

234 F
>>232
l‚¦‚é‚ÈBŠ´‚¶‚ë‚—

235 F
u‚ ‚È‚½‚͉½ŒÌawk‚Å‚â‚낤‚Æ‚·‚é‚Ì‚Å‚·‚©Hv
u‚»‚±‚Éawk‚ª‚ ‚é‚©‚çv

236 F
awk‚©‚çsystem()‚Ågrep‚Æ‚©sed‚Æ‚©ŒÄ‚ñ‚¾‚è‚·‚é•È‚ª•t‚¢‚Ä‚¢‚é
ƒVƒFƒ‹ƒXƒNƒŠƒvƒg‚É‚·‚é•û‚ª‚Þ‚µ‚ëˆá˜aŠ´

237 F
‚¨‚¢‚¨‚¢Agrep‚âsed‚®‚ç‚¢ŒÄ‚Ño‚³‚¸‚Éawk‚Å‚â‚낤‚ºB

238 F
grep‚âsed‚̓pƒCƒv‚ł‚Ȃ°‚ÄŽg‚¤‚à‚Ì‚¶‚á‚È‚¢‚ÌH(^^;

239 F
gawk 3.1.4 mb@‚Ìwindows”Å‚ÌEXEƒtƒ@ƒCƒ‹‚ª—~‚µ‚¢c

240 F
‚È‚ñ‚Å‚»‚ñ‚Ȍ¢ƒo[ƒWƒ‡ƒ“‚ª—~‚µ‚¢‚Ì?

241 F
>‚È‚ñ‚Å‚»‚ñ‚Ȍ¢ƒo[ƒWƒ‡ƒ“‚ª—~‚µ‚¢‚Ì?
length‚Æ‚©substr‚ÅAujv•t‚«•¶Žš—ñŠÖ”‚ª‚ ‚é‚©‚ç‚Å‚·B
3.1.5ˆÈ~‚¾‚ÆA“¯‚¶ƒXƒNƒŠƒvƒgƒtƒ@ƒCƒ‹“à‚ÅAƒoƒCƒg’PˆÊˆ—‚Æ
ƒLƒƒƒ‰ƒNƒ^[’PˆÊˆ—‚̬݂ª“ï‹V‚È‚Ì‚Å‚·B

242 F
3.1.5‚Å•¶Žš‚̈µ‚¢‚ª•Ï‚í‚Á‚½‚Ì‚Í‚»‚̒ʂ肾‚¯‚ÇA3.1.4‚ÌWindows”Å‚Ä
jlength‚â‚ç‚ ‚Á‚½‚Á‚¯?
‚È‚©‚Á‚½‚ÆŽv‚¤‚ñ‚¾‚¯‚ÇB

243 F
>‚È‚©‚Á‚½‚ÆŽv‚¤‚ñ‚¾‚¯‚ÇB
‚¦‚ÁB3.1.4ˆÈ‘O‚̂̓oƒCƒg’PˆÊƒIƒ“ƒŠ[‚Á‚ÄŽ–‚Å‚·‚©H
c‚»‚ê‚Å‚à2ƒoƒCƒgŠ·ŽZ‚ňµ‚¦‚΂¢‚¢‚©‚çA‚Ü‚¾ƒ}ƒV‚©‚àB
j•t‚«‚ª’ljÁ‚³‚ê‚Ä‚¢‚½‚¯‚ÇA“®ì•ÏX‚É”º‚Á‚Ä”pŽ~‚³‚ꂽc
‚ÆŽv‚Á‚Ä‚¢‚Ü‚µ‚½B
‹L‰¯‚É‚ ‚é‚Ì‚ÍA‚Ç‚È‚½‚©‚Ì“ÆŽ©Šg’£•ÊVer‚¾‚Á‚½‚Ì‚©cH

244 F
> ‚¦‚ÁB3.1.4ˆÈ‘O‚̂̓oƒCƒg’PˆÊƒIƒ“ƒŠ[‚Á‚ÄŽ–‚Å‚·‚©H ‚¿‚ႤB
j‚È‚ñ‚Æ‚©‚ª‚ ‚Á‚½‚Ì‚ÍA
2.11ƒx[ƒX‚Ìjgawk‚Æ2.15ƒx[ƒX‚Ìjgawk
2.15ƒx[ƒX‚Ì‚Ægawk+mb
3.0.xƒx[ƒX‚Ìgawk+mb
‚ÅA3.1.xƒx[ƒX‚Ì‚É‚Í‚È‚©‚Á‚½‚Æ‚¢‚¤˜b‚¾‚Á‚½‚ÆŽv‚¤B
‚»‚ꂼ‚ê‚â‚Á‚Ä‚él‚ªˆá‚¤B

245 F
>3.1.xƒx[ƒX‚Ì‚É‚Í‚È‚©‚Á‚½‚Æ‚¢‚¤˜b‚¾‚Á‚½‚ÆŽv‚¤B
‚»‚¤‚Å‚·‚©cB
gawk 3.1.4 mb ‚Ìwindows”Å‚ÌEXEƒtƒ@ƒCƒ‹‚ª—~‚µ‚¢c
‚Å‚Í‚È‚­‚ÄA
3.0.xƒx[ƒX‚Ìgawk+mb ‚Ìwindows”Å‚ÌEXEƒtƒ@ƒCƒ‹‚ª—~‚µ‚¢c
‚Æ‚¢‚¤Ž–‚É‚È‚é–ó‚Å‚·‚ªc–³—‚Á‚Û‚¢B
‚ ‚Á‚Ä‚àŠÖ”‚â‘gž•Ï”‚ªŒ¸­c‚»‚Ì‘O‚É16bitDOS”ÅONLY‚Ì—\Š´cB
’ú‚ß‚Ü‚·B240‚³‚ñA‚Ç‚¤‚à‚Å‚µ‚½B

246 F
>>245
http://www.hinadori.atnifty.com/~wills/
‚É‚ ‚é‚æB3.0.6‚Ì‚â‚ÂB
DOS”Å‚¾‚¯‚¶‚á‚È‚­‚ÄWin32”Å‚à‚ ‚éB
3.0.6→3.1.x‚Å‘‚¦‚½‹@”\‚Å‚àŽg‚Á‚Ä‚ñ‚Ì?


247 F
>‚ ‚é‚æB3.0.6‚Ì‚â‚ÂB
‚¨‚¨B ‚ ‚肪‚Æ‚¤‚²‚´‚¢‚Ü‚·B
>3.0.6¨3.1.x‚Å‘‚¦‚½‹@”\‚Å‚àŽg‚Á‚Ä‚ñ‚Ì?
‚¢‚‰½‚ª‘‚¦‚½‚Ì‚©‚æ‚­”cˆ¬‚µ‚Ä‚¢‚È‚¢‚ñ‚Å‚·‚ªA
gensub‚Æ‚©mktime‚Æ‚©switch-case‚Æ‚©c‚ ‚è‚Ü‚·‚©‚ËB
‚Ü‚ A‘ã‘ÖŽè’i‚Í‚ ‚é‚Ì‚ÅŽŽ‚µ‚Ä‚Ý‚Ü‚·B‚Ç‚¤‚à‚Å‚·B

248 F
awk‚ÅA‘g‚݇‚킹‚Ì‘S‚Ä‚ðì‚éA‚Æ‚¢‚¤Ž–‚Í‚Å‚«‚é‚Ì‚Å‚µ‚傤‚©H
‚¢‚í‚ä‚én‚br‚ÌAŒÂ”‚Å‚Í‚È‚­‚ÄA’†g‚ð’m‚肽‚¢‚Æ‚¢‚¤Ž–‚È‚Ì‚Å‚·‚ª¥¥¥B
imawk‚ðŽg‚Á‚Ä‚¢‚Ü‚·j

249 F
>>248
‚Å‚«‚Ü‚·

250 F
248‚Å‚·B
‚È‚ñ‚Æ‚©‚Å‚«‚Ü‚µ‚½B249‚³‚ñ‚Ç‚¤‚à‚Å‚·B

251 F
sageŠÔˆá‚¦‚½c

252 F
int(0.5005*10000)‚ª5004‚É‚È‚é‚Ì‚Í‚È‚º‚Å‚·‚©B

253 F
ŠÛ‚ߌ뷂łµ‚傤B
Ø‚èŽÌ‚Ä‘O‚É0.5‘«‚·‚Æ‚©H•v‚µ‚Ä‚Ý‚Ä‚Í”@‰½‚Å‚µ‚傤‚©B
Ú‚µ‚­‚ÍAIEEE‚Ɗۂߌ뷕ӂè‚̃L[ƒ[ƒh‚ÅŒŸõ‚Ì‚±‚ÆB

254 F
>253
‚ ‚肪‚Æ‚¤

255 F
gawk‚ÅŒfŽ¦”Âì‚肽‚¢‚ñ‚Å‚·‚¯‚ÇA
gawk‚ªŽg‚¦‚é–³—¿ŽI‚Ç‚±‚©‚É‚ ‚è‚Ü‚¹‚ñ‚©H

256 F
Linux‚ª“ü‚Á‚Ă郌ƒ“ƒ^ƒ‹ŽI‚È‚ç“ü‚Á‚Ä‚é‚ñ‚¶‚á‚È‚¢‚©‚È‚ŸH
ƒŒƒ“ƒ^ƒ‹ŽI”‚ł«‚¢‚Ä‚Ý‚½‚çB
‚³‚­‚ç‚ÌFreeBSD‚ÍFreeBSD‚Ìawk(!=gawk)‚¾‚Á‚½B

257 F
>>256
‚³‚­‚ç‚Ígawk‚Å‚·‚©B
Windows‚¶‚á‚È‚¢ƒŒƒ“ƒ^ƒ‹ŽI‚È‚çawk‚ªŽg‚¦‚Ä‚à—Ç‚³‚»‚¤‚Å‚·‚¯‚ÇA
–³—¿‚Å‚Í‚È‚©‚È‚©Œ©‚‚©‚ç‚È‚¢‚ñ‚Å‚·‚æ‚ËB
perlCrubyCphp‚Í‘½‚¢‚ñ‚Å‚·‚¯‚Ç‚Ë‚¥BB

258 F
Ž¸—çB
‚³‚­‚ç‚Ígawk‚¶‚á‚È‚¢awk‚Å‚·‚©B

259 F
‚í‚炤w
ttp://awk.info/?doc/dsl/awkplusplus.html
object_variable = class_name.new[(optional parameters)]
object_variable.method_name(parameters)
object_variable.delete

260 F
>>259
“¯‚¶‚­ƒEƒP‚½
awk‚͉i‘±“I‚ÉŽg‚Á‚Ä‚¢‚ÄCC-->C++-->Java‚Ææ‚èŒp‚¢‚Å‚«‚½‚ªCawk‚Í‚±‚ê‚çƒRƒ“ƒpƒCƒ‰Œ¾Œê‚ðŽg‚¤ã‚Å
—Ç‚¢ŠwKÞ—¿‚É‚È‚Á‚Ä‚«‚½‚ÆŽv‚¢Š´ŽÓ‚µ‚Ä‚¢‚é(‚à‚¿‚ë‚ñ–¢‚¾‚Éscript‚Ìawk‚ðawk‚Å‘‚¢‚Ä‚¢‚é)D
—Bˆêawk‚ŕ׋­‚Å‚«‚È‚©‚Á‚½‚Ì‚ªOOP‚¾‚Á‚½‚©‚çCŠwKÞ—¿‚Æ‚µ‚Ä‚Ìawk‚ª‚±‚¤‚¢‚¤•ûŒü‚ÉŠˆ˜H‚ðŒ©‚¢‚¾‚·‚Ì‚Í
—Ç‚¢‚±‚Æ‚©‚à‚µ‚ê‚È‚¢D‚½‚¾‚µŽÀ—p‚ÉŒü‚¯‚Äl‚¦‚Ä‚Ý‚é‚ÆCŒÂl“I‚É‚ÍOOP‚ª–{—Ì‚ð”­Šö‚·‚é‚Ì‚Í“ª‚Ì’†‚Åalgorithm‚ð
”cˆ¬‚µ‚«‚ê‚È‚­‚È‚é’ö“x‚É‘å‚«‚ȃVƒXƒeƒ€‚ð‘g‚Ýã‚°‚éꇂȂ̂ÅC‰Ê‚½‚µ‚Ä‚»‚ê‚ðawk‚Å‘‚­‚©‚Æ‚¢‚í‚ê‚é‚ÆcD

261 F
s/algorithm/ƒf[ƒ^\‘¢/

262 F
Å‹ßruby‚̕׋­Žn‚ß‚½‚ñ‚¾‚ªA
uruby‚ª‚ ‚ê‚ÎAWK‚¢‚ç‚Ëv‚Æ‚ÍŽv‚¦‚ñB
‹t‚ÉAWK‚Ì•Ö—˜‚³‚ðÄ”FŽ¯‚µ‚½B
‚â‚Á‚Ï‚èAŠÈ’P‚ȃeƒLƒXƒgˆ—‚Í
AWK‚Å‚â‚Á‚½‚Ù‚¤‚ªŠÈ’P‚¾B

263 F
Šes‚ɑ΂µ‚Ĉ—‚Á‚ÄꇂÍawk‚ª—Ç‚¢‚Ë

264 F
ruby‚̓IƒuƒWƒFƒNƒgŽwŒü‚ð‹­§‚³‚ê‚é‚©‚笉ñ‚肪‚«‚©‚ñ

265 F
JavaScript‚ª“®‚­ HTMLŽÀŒ±•”‰®
ttp://homepage2.nifty.com/tomoarai/java/exper.html

266 F
jawk‚̘b‘肪‘S‘Ro‚È‚¢‚ËB
Žg‚Á‚Ä‚él­‚È‚¢‚ÌH

267 F
>>266
‚³‚­‚Á‚Æ1s‚ÅÏ‚Þ‚Ì‚ª‹C‚É“ü‚Á‚Ă鉴‚É‚Í–³—p‚¾‚È

268 F
>>266
JƒA(ƒI)[ƒNAƒvƒ‰ƒOƒAƒEƒbI

269 F
ttp://gauc.no-ip.org/awk-users-jp/blis.cgi/DoukakuAWK_167
Geocoding - ZŠ‚©‚çˆÜ“xŒo“x‚ðŒŸõ ‚¾‚Á‚ÄB‰½‚±‚ꂨ‚à‚ë‚¢B

270 F
{if(miso<$1){printf($1)}} miso=30
‚ðŽÀs‚·‚é‚Æ$1‚ª‚PŒ…‚Ì”Žš‚Ì‚Æ‚«‚É‚¤‚Ü‚­‚¢‚©‚È‚¢‚ñ‚Å‚·‚¯‚Ç‚È‚ºH

271 F
•¶Žš—ñ‚Å”äŠr‚³‚ê‚Ä‚é‚ñ‚¶‚á‚ËH
miso<$1-0
‚Å‚â‚Á‚½‚ç‚Ç‚¤H

272 F
>>271
‚ ‚肪‚Æ‚¤‚²‚´‚¢‚Ü‚·B‚Å‚à‚¾‚ß‚Å‚µ‚½B
•¶Žš—ñ‚Å”äŠr‚³‚ê‚Ä‚é‚Á‚Û‚¢‚Å‚·‚ËB

273 F
>>270
‰½‚ð“ü—Í‚µ‚½‚Æ‚«‚ɉ½‚ªo‚Ä—~‚µ‚¢‚ÌH
‚¤‚Ü‚­‚¢‚©‚È‚¢‚Á‚Ä‚Ç‚¤‚È‚é‚ÌH

274 F
>>273
$1‚ª4‚Ì‚Æ‚«‚Éo‚Ä‚Ù‚µ‚­‚È‚¢‚Ì‚Éo‚Ä‚µ‚Ü‚¤‚ñ‚Å‚·DDD

275 F
>>274
‚±‚ñ‚È‚ñH
BEGIN{miso=30}{if(miso<$1){printf("%d\n",$1)}}

276 F
>>275
o‚Ä‚µ‚Ü‚¤——R‚ª‹C‚É‚È‚è‚Ü‚·DDD‚È‚ñ‚Å‚Å‚µ‚傤
‚â‚Á‚Ï‚è‚Q‚V‚P‚³‚ñ‚ÌŒ¾‚¤‚Æ‚¨‚蕶Žš—ñ”äŠr‚µ‚Ä‚é‚ñ‚Å‚µ‚傤‚©H

277 F
>>276
awk ‚̃o[ƒWƒ‡ƒ“iŽí•Êj‚ª•ª‚©‚ç‚È‚¢
‰½‚ðH‚킹‚Ä‚é‚Ì‚©•ª‚©‚ç‚È‚¢
ƒXƒNƒŠƒvƒg‚͈ês‚Å‘‚¢‚Ä‚é‚Ì‚©ƒtƒ@ƒCƒ‹‚É‚µ‚Ä‚é‚Ì‚©•ª‚©‚ç‚È‚¢
ˆês‚Å‘‚¢‚Ä‚¢‚é‚È‚çƒVƒFƒ‹‚ɉ½‚ðŽg‚Á‚Ä‚¢‚é‚Ì‚©

278 F
•¶Žš—ñ”äŠr‚³‚ê‚Ä‚é‚È‚çˆêŒ…‚Ì‚Æ‚«‚ÉãŽè‚­‚¢‚©‚È‚¢‚Æ‚¢‚¤‚æ‚è
“ñŒ…‚Ì‚Æ‚«‚¾‚¯ãŽè‚­‚¢‚­‚Æ‚¢‚¤Š´‚¶‚È‚Ì‚©‚ËB
WindowsXP‚̃Rƒ}ƒ“ƒhƒvƒƒ“ƒvƒg‚Ågawk(3.1.5)Žg‚Á‚ĉº‹L‚ðŽŽ‚µ‚Ä‚Ý‚½‚¯‚Ç
‚»‚ÌŒ»ÛÄŒ»‚Å‚«‚È‚©‚Á‚½B
gawk "{if(miso<$1){printf($1)}}" miso=30

279 F
$awk -W version
mawk 1.3.3 Nov 1996, Copyright (C) Michael D. Brennan
compiled limits:
max NF 32767
sprintf buffer 2040
$seq 1 40 | awk '{if(miso<$1)printf($1)}' miso=30
31323334353637383940
‚¤‚Ü‚­“®‚¢‚Ä‚¢‚é‚悤‚¾‚ªB

280 F
>>279‚ðƒ}ƒl‚³‚¹‚Ä‚à‚ç‚Á‚½
$ awk -W version
GNU Awk 3.1.6
Copyright (C) 1989, 1991-2007 Free Software Foundation.
$ seq 1 40 | awk '{if(miso<$1)printf($1)}' miso=30
31323334353637383940

281 F
miso=30‚Á‚Ä-v•t‚¯‚È‚­‚Ä‚¢‚¯‚é‚ñ‚¾B‚µ‚ç‚ñ‚©‚Á‚½B

282 F
gawk‚Í
ƒRƒ}ƒ“ƒhƒ‰ƒCƒ“‚ÅŽw’肳‚ꂽƒtƒ@ƒCƒ‹–¼‚ª var=val ‚Æ‚¢‚¤Œ`Ž®‚È‚ç‚ÎA‚»‚ê‚Í•Ï”‚Ö‚Ì‘ã“ü‚Å‚ ‚é‚ƉðŽß‚³‚ê‚Ü‚·B•Ï” var ‚Í’l val ‚Éݒ肳‚ê‚Ü‚· (‚±‚ê‚ÍA‚·‚×‚Ä‚Ì BEGIN ƒuƒƒbƒN‚ðŽÀs‚µ‚½‚ ‚Æ‚És‚í‚ê‚Ü‚·)B

‚â‚Á‚Ï‚è‚à‚ê‚Ì XPƒRƒ}ƒ“ƒhƒvƒƒ“ƒvƒgŠÂ‹«‚Å‚à
>gawk -W version
GNU Awk 3.1.6
Copyright (C) 1989, 1991-2007 Free Software Foundation.
>seq 1 40 | gawk "{if(miso<$1) print}" miso=30
31
32
33
34
35
36
37
38
39
40
‚Á‚ÄŠú‘Ò’Ê‚è‚Ì“®‚«‚¾YO!

283 F
ŒÅ’è’·‚ʼnüs‚È‚µ‚̃tƒ@ƒCƒ‹i6MB’´j‚ðˆ—‚·‚邱‚Æ‚É‚È‚èA
‘¼‚̃\ƒtƒg‚Å¢‰üs‚ ‚è‚̌Œ蒷£‚É‚µ‚Ä‚©‚çAawk‚ň—‚µ‚Ä‚¢‚½‚Ì‚Å‚·‚ªc
ƒf[ƒ^ƒtƒ@ƒCƒ‹‚É‚æ‚­o‚Ä‚­‚镶Žš‚ð‚Æ‚è‚ ‚¦‚¸RS‚ÉŒ©—§‚Ä‚Ä“Ç‚Ýž‚Ý
¨RS‚ÉŽw’肵‚½•¶Žš‚ð˜AÚ
¨ŒÅ’è’·‚Ì1s•ª‚æ‚è’·‚©‚Á‚½‚ç‚»‚Ì•”•ª‚ðØ‚èo‚µ
‚µ‚Ä‚¢‚­‚Æ¢‰üs‚ ‚è‚̌Œ蒷£A‚Å‚«‚¿‚á‚¢‚Ü‚µ‚½B
RS‚ÉŽw’肵‚½•¶Žš‚ª‚µ‚΂炭o‚Ä‚±‚È‚¯‚ê‚Εϔƒpƒ“ƒN‚µ‚¿‚Ⴄ‚µA‘啪Šë‚È‚Á‚©‚µ‚¢‚Ì
‚Å‚·‚ªA‚Æ‚è‚ ‚¦‚¸awk‚Å‚Å‚«‚½‚Ì‚ª­‚µ‚¤‚ꂵ‚¢B

284 F
‰üs‚ ‚è‚̌Œ蒷‚ðawk‚Å“Ç‚ñ‚¾‚Ì‚È‚ç
substr($0, start, length) ‚ł΂点‚æw

285 F
>>283
>284‚Ý‚½‚¢‚ȓljð—Í‚È‚¢”nŽ­‚ª—N‚©‚È‚¢‚悤‚ÉA”»‚èˆÕ‚­‘‚«‚Ü‚µ‚傤B
‚Â[‚©A‹ï‘Ì“I‚ȃR[ƒh‚ào‚³‚¸‚Éuawk‚Å‚Å‚«‚Ä‚¤‚ꂵ‚¢v‚È‚ñ‚Ă̂̓`ƒ‰ƒV‚Ì— ‚É‚Ç‚¤‚¼B

286 F
fold ‚Æ‚©H

287 F
³‹K•\Œ»‚Å‹ó”’‚Å‹æØ‚ç‚ꂽƒeƒLƒXƒg‚ðHTML‚Å‚¢‚¤table‚É‚µ‚½‚¢‚Å‚·B
—áj
10i 2i 8i
000 000 000
001 001 001
002 010 002
003 011 003
«««««««
<table>
<tr><th>10i</th> <th>2i</th> <th>8i</th></tr>
<tr><td>000</td> <td>000</td> <td>000</td></tr>
<tr><td>001</td> <td>001</td> <td>001</td></tr>
<tr><td>002</td> <td>010</td> <td>002</td></tr>
<tr><td>003</td> <td>011</td> <td>003</td></tr>
</table>

288 F
>>287
³‹K•\Œ»‚ðŽg‚¤‚Ù‚Ç‚Ì‚±‚Æ‚Å‚Í‚È‚¢
ƒRƒA‚Ì•”•ª‚¾‚¯‘‚­‚Æ‚±‚ꂾ‚¯
for(i=1;i<=NF;i++) printf("<td>%s</td>", $i)

289 F
³‹K•\Œ»Žg‚Á‚ă^ƒO‚ðØ‚è‘Ö‚¦‚½‚¢‚Ì‚©‚ÈH

290 F
split ‚â asort ‚µ‚½‚ç‚Ç‚¤‚µ‚Ä“YŽš‚ª1‚©‚ç‚É‚È‚é‚ñ‚¾I
‚È‚ñ‚Å‚¾I
Žd—l‘“Ç‚Ý”ò‚΂µ‚Ăăf[ƒ^Œ‡—Ž‚³‚¹‚é‚Æ‚±‚낾‚Á‚½(L¥ƒÖ¥M)
>>287
sed ‚Å‚¦‚¦‚â‚ñ

291 F
¡‚Ü‚Åawk '{print $3}'’ö“x‚µ‚©Žg‚Á‚Ä–³‚©‚Á‚½‚ªAÅ‹ß‚±‚ê‚ð“Ç‚ñ‚Åawk‚ðŒ©’¼‚µ‚½B
http://www.eecs.harvard.edu/cs152/lectures/CS152-Lecture_14-Kernighan.pdf

292 F
ttp://www.kt.rim.or.jp/~kbk/gawk-3.1/
‚±‚±‚Ìgawk‚Å>>17‚̃Tƒ“ƒvƒ‹‚ðŽŽ‚µ‚½‚ª“®‚©‚È‚©‚Á‚½B
gawk: test.awk:4: ’v–½“I: “üo—Í—p‚Ì‘o•ûŒüƒ\ƒPƒbƒg `/inet/tcp/0/www.yahoo.com/80' ‚ªŠJ‚¯‚Ü‚¹‚ñ (No such file or directory)B

293 F
‚»‚ê‚Í‚»‚±‚̃TƒCƒg‚Ìl‚ÉŒ¾‚¦‚æ

294 F
‚¢‚‚̂܂ɂ©gawk 3.1.7‚ªo‚Ä‚½B

295 F
Ruby •×‹­’†‚¾‚¯‚Ç AWK ‚Ì‚Ù‚¤‚ªŠy‚µ‚¢‚º(L¥ƒÖ¥M)

296 F
7ŒŽ7“ú¨[[7ŒŽ7“ú|07ŒŽ07“ú]]
7ŒŽ28“ú¨[[7ŒŽ28“ú|07ŒŽ28“ú]]
11ŒŽ3“ú¨[[11ŒŽ3“ú|11ŒŽ3“ú]]
12ŒŽ16“ú¨[[12ŒŽ16“ú|12ŒŽ16“ú]]
‚Æ’u‚«Š·‚¦‚½‚¢‚Å‚·B
perl‚È‚ç‚í‚è‚ÆŠÈ’P‚È‚Ì‚Å‚·‚ªAawk‚ÅŠÈ’P‚É‚¢‚«‚Ü‚·‚©H
Ž©•ª‚ªawk‚Ì‚±‚Æ‚ð•×‹­•s‘«‚¾‚©‚ç‚©‚à‚µ‚ê‚Ü‚¹‚ñ‚¯‚ÇcB

297 F
ªŠÔˆá‚¢‚Ü‚µ‚½B
7ŒŽ7“ú¨[[7ŒŽ7“ú|07ŒŽ07“ú]]
7ŒŽ28“ú¨[[7ŒŽ28“ú|07ŒŽ28“ú]]
11ŒŽ3“ú¨[[11ŒŽ3“ú|11ŒŽ03“ú]]
12ŒŽ16“ú¨[[12ŒŽ16“ú|12ŒŽ16“ú]]

298 F
—Ⴊ‚æ‚­‚í‚©‚ç‚È‚¢‚ñ‚¾‚¯‚ÇC”Žš1Œ…‚Ì•”•ª‚ð2Œ…‚É‚µ‚½‚¢‚Á‚Ä‚±‚ÆH

299 F
{
gsub(/ŒŽ|“ú/," ");
printf("%02dŒŽ%02d“ú\n",$1,$2);
}
‚Æ‚©D
ƒtƒB[ƒ‹ƒhƒZƒpƒŒ[ƒ^‚ªƒfƒtƒHƒ‹ƒg(”¼ŠpƒXƒy[ƒX)‚ÌꇂËD

300 F
>296
Perl‚ÅŠÈ’P‚É‘‚¯‚é‚È‚çAˆê’UPerlƒR[ƒhŽN‚µ‚Ä‚­‚ê‚é‚©H
‚Ç‚¤‚àŽd—l‚ª‚æ‚­‰ð‚ç‚ñ‚Ì‚¾c

301 F
print gensub(/0([0-9])([0-9])/, "\\1\\2", "g", gensub(/([0-9]+)/, "0\\1", "g",
$1))
‰ä‚È‚ª‚牘‚Ë‚¥‚È‚Ÿ(L¥ƒÖ¥M)
>>299‚Ì•û‚ª‚¢‚¢‚È

302 F
>>298,300 ’uŠ·‚µ‚È‚¢‚Å•Ï‚¦‚½‚¢‚Æ‚±‚¾‚¯o—Í‚·‚é‚Ȃ炱‚¤‚¢‚¤ˆÓ–¡‚Å‚·B
#!/usr/bin/perl
while(1){
$line = <STDIN>;
if($line =~ /(0?[1-9]|1[0-2])ŒŽ(0?[1-9]|[1-2][0-9]|3[01])“ú/){
$month = $1; $day = $2;
if($month >= 10) {
if($day >=10){
print "$& -> [[$monthŒŽ$day“ú]]";
}
else {
print "$& -> [[$monthŒŽ$day“ú|$monthŒŽ0$day]]";
}
}
else{
if($day >=10){
print "$& -> [[$monthŒŽ$day“ú|0$monthŒŽ$day]]";
}
else{
print "$& -> [[$monthŒŽ$day“ú|0$monthŒŽ0$day]]";
}
}
}
}
1ŒŽ1“ú - ƒ†[ƒ“±“ü10Žü”NB
1ŒŽ1“ú -> [[1ŒŽ1“ú|01ŒŽ01]]
12ŒŽ31“ú - ƒjƒ…[ƒˆ[ƒN‚̃}ƒ“ƒnƒbƒ^ƒ“‹´ŠJ’Ê100Žü”NB
12ŒŽ31“ú -> [[12ŒŽ31“ú]]
8ŒŽ21“ú - ƒnƒƒCBB§50Žü”NB
8ŒŽ21“ú -> [[8ŒŽ21“ú|08ŒŽ21]]
10ŒŽ1“ú - ƒpƒ‰ƒI“Æ—§15Žü”NB
10ŒŽ1“ú -> [[10ŒŽ1“ú|10ŒŽ01]]

303 F
‚È‚ñ‚©‘f’¼‚ÉPerl‚Å‚â‚Á‚½‚Ù‚¤‚ªŠy‚»‚¤‚¾‚È‚ A‚»‚êB
‚¿‚È‚Ý‚ÉA‚»‚̃R[ƒh‚¶‚á–³ŒÀƒ‹[ƒv‚·‚邼B
#!/usr/bin/perl
while($line = <STDIN>) {
    if($line =~ /(0?[1-9]|1[0-2])ŒŽ(0?[1-9]|[1-2][0-9]|3[01])“ú/) {
        $month = $1; $day = $2;
        if($month < 10 || $day < 10) {
            printf "%s -> [[%dŒŽ%d“ú|%02dŒŽ%02d]]\n", $&, $month, $day, $month, $day;
        }
        else {
            print "$& -> [[$monthŒŽ$day“ú]]\n";
        }
    }
}

304 F
‚¾‚ß‚¾cƒR[ƒh‚̈Ӗ¡‚Í•ª‚©‚邪CŽd—l‚ª—Ç‚­•ª‚©‚ç‚ñD

305 F
7ŒŽ7“ú
‚Æ‚¢‚¤•¶Žš—ñ‚ð
[[7ŒŽ7“ú|07ŒŽ07“ú]]
‚Æ’u‚«Š·‚¦‚éA‚Á‚Ä‚±‚Æ‚Å‚µ‚åB
‚È‚ñ‚Å•ª‚©‚ç‚ñ‚©‚È‚ŸB‚»‚Á‚¿‚Ì‚ª•ª‚©‚ç‚ñB

306 F
“ü—Í‚ª07ŒŽ07“ú‚¾‚Á‚½‚çC
o—Í‚Í[[07ŒŽ07“ú|07ŒŽ07“ú]]‚É‚È‚é‚æ‚ËH‚±‚ê‚ÍOK?
‚»‚à‚»‚àC‚»‚¤‚¢‚¤“ü—Í‚Í‹N‚±‚肦‚È‚¢‚ÌH

307 F
>>305
‚»‚ñ‚ÈŠ´‚¶‚Å‚·B
–Ú“I‚ðŒ¾‚Á‚Ä‚¢‚È‚¢‚Ì‚ÅA‰½‚ª‚â‚肽‚¢‚Ì‚©‚æ‚­‚í‚©‚ç‚È‚¢‚Ì‚¾‚ÆŽv‚¢‚Ü‚·B
‘‚¢˜bAWiki‚Ì‹L–@‚ðŽg‚Á‚ăŠƒ“ƒN‚𒣂肽‚¢‚Ì‚Å‚·B
0‚ð‚­‚í‚¦‚ÄŒ…‚ð’²®‚µ‚Ä‚¢‚é——R‚Í
•¶Žš—ñ‚Æ‚µ‚ă\[ƒg‚µ‚ij‚µ‚­¸‡‚É•À‚Ԃ悤‚É‚·‚邽‚ß‚Å‚·B—Ⴆ‚ÎWikipedia‚È‚ç
7ŒŽ7“ú‚Ì‚Æ‚«‚ÍA[[7ŒŽ7“ú|07ŒŽ07“ú]]‚Æ‚·‚邱‚Æ‚Å
ƒŠƒ“ƒN‚Íhttp://ja.wikipedia.org/wiki/7ŒŽ7“ú
•\Ž¦‚³‚ê‚镶Žš—ñ‚Í 07ŒŽ07“ú@
‚Æ‚È‚è‚Ü‚·B
‚±‚ê‚ðƒ\[ƒg‚Å‚«‚éƒe[ƒuƒ‹‚Ì—v‘f‚É‚µ‚Ü‚·BŽQl‚Ü‚Å‚É
http://ja.wikipedia.org/wiki/Help:%E8%A1%A8%E3%81%AE%E4%BD%9C%E3%82%8A%E6%96%B9#.E5.86.8D.E6.95.B4.E5.88.97.E5.8F.AF.E8.83.BD.E3.81.AA.E8.A1.A8
‚±‚̈—‚Íawk‚Å‚à‰Â”\‚È‚±‚Ƃ͉”\‚¾‚Á‚½‚ñ‚Å‚·‚ªA–³’m‚È‚¹‚¢‚©
‚¨‚»‚낵‚­•sŠiD‚É‚È‚è‚Ü‚µ‚½B
>>306
‚»‚êŽv‚¢‚Ü‚µ‚½B‚Å‚«‚ê‚Î
07ŒŽ07“ú->[[7ŒŽ7“ú|07ŒŽ07“ú]]
‚̂悤‚Ɉ—‚µ‚½‚¢‚Å‚·B

308 F
>>303
‚»‚ê‚Å‚·B‚»‚¤‚¢‚¤ˆÓ–¡‚Å‚·B

309 F
# gawk ‚É‚æ‚é match ŠÖ”‚ÌŠg’£‚ðŽg‚Á‚Ä‚¢‚é.
# ˆês‚É•¡”‰ñŒ»‚ꂽꇂ͖³Ž‹.
BEGIN {
    F = "(0?[1-9]|1[0-2])ŒŽ(0?[1-9]|[1-2][0-9]|3[01])“ú";
}
{
    if ($0 ~ F) {
        match($0, F, a);
        if (a[1]+0 < 10 || a[2]+0 < 10) {
            sub(a[0], sprintf("[[%dŒŽ%d“ú|%02dŒŽ%02d“ú]]", $0, a[2], a[1], a[2], a[1]));
        } else {
            sub(a[0], sprintf("[[%dŒŽ%d“ú]]", $0, a[2], a[1]));
        }
    }
    print $0;
}

310 F
# ’ù³.
BEGIN {
    F = "(0?[1-9]|1[0-2])ŒŽ(0?[1-9]|[1-2][0-9]|3[01])“ú";
}
{
    if ($0 ~ F) {
        match($0, F, a);
        if (a[1]+0 < 10 || a[2]+0 < 10) {
            sub(a[0], sprintf("[[%dŒŽ%d“ú|%02dŒŽ%02d“ú]]", a[1], a[2], a[1], a[2]));
        } else {
            sub(a[0], sprintf("[[%dŒŽ%d“ú]]", a[1], a[2]));
        }
    }
    print $0;
}

311 F
>>310 Š®àø‚Å‚·B¡“x‚©‚炱‚ê‚ðŽg‚¢‚Ü‚·—L“‚²‚´‚¢‚Ü‚µ‚½B
$ cat test.txt
1ŒŽ1“ú #mŒŽd“ú
01ŒŽ1“ú #0mŒŽd“ú
1ŒŽ01“ú #mŒŽ0d“ú
01ŒŽ01“ú #0mŒŽ0d“ú
2ŒŽ10“ú #mŒŽdd“ú
02ŒŽ10“ú #0mŒŽdd“ú
11ŒŽ3“ú #mmŒŽd“ú
11ŒŽ03“ú #mmŒŽ0d“ú
12ŒŽ16“ú #mmŒŽdd“ú
$ awk -f test.awk test.txt
[[1ŒŽ1“ú|01ŒŽ01“ú]] #mŒŽd“ú
[[1ŒŽ1“ú|01ŒŽ01“ú]] #0mŒŽd“ú
[[1ŒŽ1“ú|01ŒŽ01“ú]] #mŒŽ0d“ú
[[1ŒŽ1“ú|01ŒŽ01“ú]] #0mŒŽ0d“ú
[[2ŒŽ10“ú|02ŒŽ10“ú]] #mŒŽdd“ú
[[2ŒŽ10“ú|02ŒŽ10“ú]] #0mŒŽdd“ú
[[11ŒŽ3“ú|11ŒŽ03“ú]] #mmŒŽd“ú
[[11ŒŽ3“ú|11ŒŽ03“ú]] #mmŒŽ0d“ú
[[12ŒŽ16“ú]] #mmŒŽdd“ú

312 F
ʼn‚É‚»‚¤‚¢‚¤ƒeƒXƒgƒoƒ^[ƒ“‚ðo‚»‚¤‚Ë

313 F
‚±‚±‚ÌZl‚ªƒR[ƒfƒBƒ“ƒOD‚«‚¾‚©‚ç‚Á‚Ċ¦‚₪‚Á‚Ä(L¥ƒÖ¥M)
> perl‚È‚ç‚í‚è‚ÆŠÈ’P‚È‚Ì‚Å‚·‚ªAawk‚ÅŠÈ’P‚É‚¢‚«‚Ü‚·‚©H
‚Á‚ÄŒ¾‚Á‚Ä‚é‚ñ‚¾‚©‚çAu‚¢‚«‚Ü‚·v‚Á‚Ä“š‚¦‚è‚á‚¢‚¢‚ñ‚¾‚æ‚È

314 F
>>312
‚È‚É‚»‚ÌŽ€‚Ìsi‚±‚í‚¢

315 F
ƒoƒ^[ƒ“@ƒeƒXƒg‚̃fƒXƒ}[ƒ`

316 F
>>294
3.1.7ƒx[ƒX‚ÌWindows—pƒoƒCƒiƒŠAo‚Ü‚µ‚½B
ttp://www.kt.rim.or.jp/%7Ekbk/gawk-3.1/index.html#GAWK-DOWNLOAD

317 F
Ž©“®Äl š@@Ž©“®•ÛŽç ŸKAWORUKOFI@@Ž©“®•ÛŽç#K9K?_D[L
–¼Œ¾W@‚»‚Ì‚R
w‚¢‚‚àƒTƒ{‚Á‚Ă΂©‚è‚̃Lƒƒƒbƒv‚ªƒEƒ[‚¦x
http://yutori7.2ch.sc/test/read.cgi/news4vip/1249830540/@ID:PVAf+dux0@@Ž©“®Äl š
> 71 FˆÈ‰ºA–¼–³‚µ‚É‚©‚í‚è‚Ü‚µ‚ÄVIP‚ª‚¨‘—‚肵‚Ü‚· [sage] F2009/08/10(ŒŽ) 00:58:57.28 ID:PVAf+dux0
> >>69
> ‘å•Ï‚Á‚ÄŒ¾‚¤‚©
> –ˆ“úA•ñ‚³‚ꂽ‚Ì‚ðŒ©‚ÄA”»’f‚µ‚ÄAˆ—‚µ‚ÄAŠ®—¹•ñ‚µ‚ÄAˆÈ‰ºƒ‹[ƒvB
> ‚¿‚å‚Á‚Æ‚Å‚àƒ~ƒX‚·‚é‚ÆA•’i‚Íì‹Æ‚à‚µ‚Ä‚È‚¢ƒLƒƒƒbƒv‚³‚ñ‚½‚¿‚ª‚³‚ñ‚´‚ñ•¶‹åŒ¾‚Á‚Ä‚«‚Ä
> ‚»‚ÌŒ¾‚¢‚킯‚ðl‚¦‚È‚¢‚ÆAƒLƒƒƒbƒv‚Í‚­’D‚³‚ꂽ‚èƒAƒJƒEƒ“ƒg“€Œ‹‚³‚ꂽ‚è‚·‚é‚©‚ç
>
> “o˜^‚³‚ê‚Ä‚©‚çˆê”NˆÈãŒo‚Á‚ÄA‚â‚Á‚Æ‚¢‚¢‚½‚¢‚±‚ÆŒ¾‚¦‚é‚悤‚É‚È‚Á‚Ä‚«‚½‚æB

----------------------------------------------
‚±‚ÌŽ©“®Äl šƒ[ƒ‹ƒ}ƒKƒWƒ“‚Ì”zM’âŽ~‚ð‚²Šó–]‚³‚ê‚é•û‚Í
http://qb5.2ch.sc/test/read.cgi/sec2chd/1250169591/
‚É‚ÄŽ©“®Äl š‚Ü‚Å‚²˜A—‚­‚¾‚³‚¢

318 F
ÅŒã‚Ì10s‚ðˆ—‚µ‚½‚­‚È‚¢ê‡A‚Ç‚¤‘‚¯‚Ηǂ¢‚Å‚µ‚傤‚©H

319 F
ÅŒã‚Ü‚Å“Ç‚Ü‚¸‚ÉÅŒã‚Ì10s‚©‚Ç‚¤‚©”»’è‚·‚é•û–@‚Í–³‚¢‚¾‚낤‚È
ˆ—‘ÎÛ‚ªƒtƒ@ƒCƒ‹‚È‚çAŽ–‘O‚Éwc -l‚©‰½‚©‚Ås”’²‚×‚Ä awk ‚É“n‚µ‚Ä‚Ý‚Ä‚Í

320 F
¬‚é’öA‚±‚êA‚Æ‚¢‚¤•û–@‚Í–³‚³‚»‚¤‚Å‚·‚Ë
‚¿‚å‚Á‚Æl‚¦‚È‚ª‚ç‚â‚Á‚Ä‚Ý‚Ü‚·

321 F
‚Æ‚è‚ ‚¦‚¸A‚±‚ñ‚ÈŠ´‚¶‚É‚µ‚Ü‚µ‚½
BEGIN {
SKIPTAILS = 10
}
{
line = buf[1]
for(i=1;i<SKIPTAILS;i++) buf[i] = buf[i+1]
buf[SKIPTAILS] = $0
}
NR > SKIPTAILS {
# line‚ðˆ—
}

322 F
>>321 l‚¦•û‚Í“¯‚¶‚¾‚¯‚ÇAfor‚ª‹C‚É‚È‚Á‚½‚Ì‚Å
ƒŠƒ“ƒOƒoƒbƒtƒ@‚ň—‚·‚é‚悤‚É‚µ‚Ä‚Ý‚½B
BEGIN {
@@SKIPTAILS = 10
@@ringpos = SKIPTAILS
}
{
@@ringpos = (ringpos + 1) % SKIPTAILS
@@line = buf[ringpos]
@@buf[ringpos] = $0
}
NR > SKIPTAILS {
@@# line‚ðˆ—
}

323 F
‚ ‚肪‚Æ‚¤‚²‚´‚¢‚Ü‚·
ƒŠƒ“ƒOƒoƒbƒtƒ@A•×‹­‚É‚È‚è‚Ü‚µ‚½
Žg‚킹‚Ä’¸‚«‚Ü‚·

324 F
>>42
sed awk ‚µ‚Ä‘DŽR‚É“o‚é@‚¾‚ëH

325 F
Ž¿–â‚Å‚·
gawk‚Å
{
printf("%d,%s\n", NR, $0 ) > FILENAME;
}
‚Æ‚¢‚¤s“ª‚ɔԆ‚ðU‚Á‚Ä•Û‘¶‚·‚鈗‚ð‚µ‚Ä
batƒtƒ@ƒCƒ‹‚ňꊇˆ—‚³‚¹‚悤‚Æ‚µ‚½‚ñ‚Å‚·‚ª
c:\windows\gawk\gawk -f g:\ì‹Æ—p\n.awk g:\ì‹Æ—p\*.txt
ŽÀsŒ‹‰Ê‚ª
ƒtƒ@ƒCƒ‹1@@ƒtƒ@ƒCƒ‹2
1‚`@@@@@@4‚c@@
2‚a@@@@@@5‚d@
3‚b@@@@@@6‚e
‚É‚È‚è‚Ü‚·
ƒtƒ@ƒCƒ‹2‚à
1‚c
2‚d
3‚e
‚É‚·‚é‚É‚Í‚Ç‚¤‚µ‚½‚ç‚æ‚¢‚Å‚µ‚傤‚©H

326 F
FNR

327 F
>>326
‚¨‚¨Ao—ˆ‚½I
v‘¬‚ȉñ“š‚ ‚肪‚Æ‚¤‚²‚´‚¢‚Ü‚·

328 F
”N––‚Ƀpƒ\ƒRƒ“‚𔃂¢Š·‚¦‚悤‚ÆŽv‚Á‚Ä‹@Ží‘I‚Ñ‚ð‚µ‚Ä‚¢‚Ä‚Ó‚Æ‹C‚¢‚½A
‚ ‚êAvaio‚ÌOS‚ªWindows7 64bitƒo[ƒWƒ‡ƒ“‚ÉEEE
ƒ_ƒ‚¶‚á‚ñIgawk‚ªŽg‚¦‚È‚­‚È‚Á‚Ä‚µ‚Ü‚¤EEE
‚¤[‚ñAAA‚Ü‚½XP‚𔃂¤‚ׂ«‚©EEE”Y‚ÞEEE

329 F
>>328
Ž©•ª‚ŃRƒ“ƒpƒCƒ‹‚µ’¼‚¹‚΂¢‚¢‚¾‚¯‚¶‚á‚È‚¢‚ÌH

330 F
ƒvƒƒOƒ‰ƒ~ƒ“ƒOŒ¾ŒêAWK•œŠ§‚¾‚Á‚Ä‚ËB
ttp://slashdot.jp/developers/article.pl?sid=10/01/06/0345207
‘½•ª•K—v«‚ðŠ´‚¶‚È‚¢’ö“x‚É‚ÍŽg‚Á‚Ä‚é‚©‚çA”ƒ‚í‚È‚¢‚¯‚ÇŠð‚µ‚¢B
•z‹³—p‚É”ƒ‚¤‚Á‚Ä‚Ì‚à‚¿‚å‚Á‚Æ‚ÈB


331 F
AAA BBB CCC c -O ZZZ YYY XXX c
awkVŽQ‚Å‚·B
-O(ƒIƒvƒVƒ‡ƒ“)‚ðŒŸõ‚µA
-O‚Æ‚»‚êˆÈ~‚ðƒŠƒ_ƒCƒŒƒNƒg‚µ‚½‚¢‚Ì‚Å‚·‚ªc
—Ç‚¢•û–@A‚ ‚è‚Ü‚·‚Å‚µ‚傤‚©

332 F
ƒŠƒ_ƒCƒŒƒNƒg‚Á‚Ä‚Ç‚¤‚¢‚¤ˆÓ–¡‚ÅŽg‚Á‚Ä‚é?
‚»‚Ì AAA ‚ÅŽn‚܂镶Žš—ñ‚àˆê‘Ì‚Ç‚¤‚¢‚¤‚à‚Ì‚È‚ÌB
ƒRƒ}ƒ“ƒhƒ‰ƒCƒ“ˆø”‚È‚Ì‚©Aƒtƒ@ƒCƒ‹‚©‚ç“Ç‚Ýž‚ñ‚Å‚­‚é‚Ì‚Æ‚©B
—pŒê‚Æ󋵂͂«‚¿‚ñ‚Æ‘‚¢‚Ä‚­‚êB

333 F
D:\My Documents\gawk\331>type 331.txt
AAA BBB CCC c -O ZZZ YYY XXX 0c
AAA BBB CCC c -O ZZZ YYY XXX 1c
AAA BBB CCC c -O ZZZ YYY XXX 2c
D:\My Documents\gawk\331>type 331.awk
{match($0, " -O .*", a);
print a[0];}
D:\My Documents\gawk\331>gawk -f 331.awk 331.txt >a.txt
D:\My Documents\gawk\331>type a.txt
-O ZZZ YYY XXX 0c
-O ZZZ YYY XXX 1c
-O ZZZ YYY XXX 2c
D:\My Documents\gawk\331>

334 F
ƒŒƒX‚ ‚肪‚Æ‚¤‚²‚´‚¢‚Ü‚·B
>>332‚·‚Ý‚Ü‚¹‚ñB‘‚«’¼‚µ‚Ü‚·B
AAA BBB CCC c -O ZZZ YYY XXX c
‚Æ‘•¡”s‘‚©‚ꂽƒtƒ@ƒCƒ‹‚ª‚ ‚èA
u-OvˆÈ~‚Ì•¶Žš—ñ‚ð•Êƒtƒ@ƒCƒ‹‚É•Û‘¶‚·‚é
‚Á‚Ä‚±‚Æ‚ð‚µ‚½‚©‚Á‚½‚Ì‚Å‚·B
>>333
ƒGƒXƒp[‚È•¶‚¾‚Á‚½‚Ì‚É‚ ‚肪‚Æ‚¤‚²‚´‚¢‚Ü‚·B
‘z’肵‚Ä‚½‚Ì‚Í‚»‚ñ‚ÈŠ´‚¶‚Å‚·B
‚½‚¾ˆÈ‰º‚̃Gƒ‰[‚ªo‚ÄãŽè‚­‚¢‚«‚Ü‚¹‚ñc
gawk: 331.awk:2: fatal: match() cannot have 3 arguments
matchŽg‚Á‚Ä‚é‚Ì‚Éa‚Æ‚¢‚¤3‚–ڂ̈ø”‚ðŽg‚Á‚Ä‚é‚©‚çc‚Á‚Ä‚±‚Æ‚Å‚µ‚傤‚©cH

335 F
Q: make spits out errors like Makefile.awk:256: fatal: match() cannot have 3 arguments

A: Your AWK is too old to recreate the Makefile. The build is done based on the distributed Makefile. Everything shall compile successfully though.
So if the compile succeeds just ignore such errors, please.

336 F
{print substr($0, match($0, " -O .*")+1);}

337 F
>>336
o—ˆ‚Ü‚µ‚½B‚Ü‚³‚©–{“ú’†‚É‰ðŒˆ‚Å‚«‚é‚Æ‚ÍŽv‚¢‚Ü‚¹‚ñ‚Å‚µ‚½B
‚ ‚肪‚Æ‚¤‚²‚´‚¢‚Ü‚·B‘å•Ï•×‹­‚É‚È‚è‚Ü‚µ‚½B

338 F
ÎÞ¿@–{“–‚ɕ׋­‚É‚È‚Á‚½‚©‚Ç‚¤‚©‚Í‹^–₾¥¥¥
@‚¨‚Á‚ƈꌾƒIƒE‚©‚Á‚½‚©B

339 F
gsub()‚Æ‚©‚ňø”‚É•Ï”‚ð—˜—p‚µ‚½‚¢‚Ì‚Å‚·‚ª‚Ç‚¤‚·‚ê‚΂¢‚¢‚Ì‚Å‚µ‚傤‚©H
gsub(str1,str2)‚Ý‚½‚¢‚ÉB

340 F
>>339
man gawk‚æ‚è
gsub(r, s [, t])
For each substring matching the regular expression r in the string t,
substitute the string s, and return the number of substitutions.
If t is not supplied, use $0. An & in the replacement text is
replaced with the text that was actually matched. Use \& to get a
literal &. (This must be typed as "\\&"; see GAWK: Effective AWK
Programming for a fuller discussion of the rules for &'s and
backslashes in the replacement text of sub(), gsub(), and gen sub().)

341 F
awk 'BEGIN{x="ABCDE";y="BCD";z="XXX";gsub(y,z,x);print x}'
‰½‚ª“‚¢‚Ì‚©‚æ‚­‚í‚©‚ç‚ñB

342 F
ŽžXawk‚¾‚Æ’x‚¢‚Ì‚Åperl‚É‘‚«Š·‚¦‚é‚Æ‚¢‚¤l‚ª‚¢‚Ü‚·‚ªA
ŽÀÛ‚Ì‚Æ‚±‚둬‚­‚È‚é‚ñ‚Å‚µ‚傤‚©H
Ž„‚̊‹«‚Å‚Íforƒ‹[ƒv‚â‰ÁŽZ‚È‚Ç‚Íawk‚Ì‚Ù‚¤‚ª‘¬‚»‚¤‚Å‚·‚ªA
‚ǂ̂悤‚Ȉ—‚ÌꇂÉperl‚Ì‚Ù‚¤‚ª‘¬‚­‚È‚è‚Ü‚·‚©H
$ time mawk 'BEGIN{x=0;for(i=1;i<=1000000;i++){x=x+i};printf("%f\n" ,x)}'
500000500000.000000
real 0m0.131s
user 0m0.120s
sys 0m0.000s
$ time gawk 'BEGIN{x=0;for(i=1;i<=1000000;i++){x=x+i};print x}'
500000500000
real 0m0.289s
user 0m0.284s
sys 0m0.000s
$ time perl -e '$x=0;for($i=1;$i<=1000000;$i++){$x=$x+$i};print $x'
500000500000
real 0m0.379s
user 0m0.376s
sys 0m0.004s

343 F
>>342
uawk‚¾‚Æ’x‚¢‚Ì‚Åperl‚É‘‚«Š·‚¦‚é‚Æ‚¢‚¤lv ‚É•·‚¯‚Εª‚©‚é

344 F
>>342
’x‚¢‚Æ‚¢‚¤awk‚Ígawk‚È‚Ì?
‘f‚Ìawk‚æ‚ègawk‚Ì•û‚ª‘‚­‚È‚©‚Á‚½‚Á‚¯H

345 F
ƒJ[ƒjƒnƒ“‚ƃpƒCƒN‚ÌwƒvƒƒOƒ‰ƒ~ƒ“ƒOì–@x‚Éawk‚Æperl
i‚ÆC‚ÆC++‚ÆJAVAj‚Ì”äŠr‚ª‚ ‚é‚È
¡‚̃}ƒVƒ“Žg‚Á‚Ä‘‚«Š·‚¦‚È‚«‚á‚È‚ç‚È‚¢‚Ù‚Ç’x‚¢‚Á‚Ä
‚Ç‚ñ‚Ȉ—‚È‚ñ‚¾‚낤H

346 F
>342
awk “™‚ð‘g‚݇‚킹‚ÄŽÀs‚·‚é‚ƃvƒƒZƒX‹N“®‚̃RƒXƒg‚ª‚©‚©‚é‚Ì‚Å perl ‚ňê‚‚ɓZ‚ß‚éA‚Æ‚¢‚¤˜b‚¶‚á‚È‚¢‚ÌH

347 F
•¶ŽšƒR[ƒh‚̃R[ƒh‚ð•Ï”‚É‚µ‚Ä•¶Žš—ñ‚ð‘€ì‚·‚邱‚Æ‚Á‚Ä‚Å‚«‚Ü‚·‚©H
•¶Žš—ñ’†‚Ì‘SŠp•¶Žš‚𔼊p•¶Žš‚É•Ï‚¦‚é‰Ø—í‚È•û–@‚ð–Íõ‚µ‚Ä‚¢‚Ü‚·B

348 F
Use iconv.

349 F
> •¶ŽšƒR[ƒh‚̃R[ƒh‚ð•Ï”‚É‚µ‚Ä•¶Žš—ñ‚ð‘€ì‚·‚邱‚Æ‚Á‚Ä‚Å‚«‚Ü‚·‚©H
‚È‚É‚ð‚µ‚½‚¢‚Ì‚©‚æ‚­‚í‚©‚ñ‚È‚¢‚ñ‚¾‚¯‚ÇB
> •¶Žš—ñ’†‚Ì‘SŠp•¶Žš‚𔼊p•¶Žš‚É•Ï‚¦‚é‰Ø—í‚È•û–@‚ð–Íõ‚µ‚Ä‚¢‚Ü‚·B
‰Ø—í‚È‚Ì‚ÍtrƒRƒ}ƒ“ƒh‚ðŽg‚¤•û–@B‚½‚¾tr‚ªƒ}ƒ‹ƒ`ƒoƒCƒg‚ð‚¤‚Ü‚­ˆµ‚Á‚Ä‚­‚ê‚é‚©
‚Ç‚¤‚©‚Í‚±‚±‚ë‚à‚Æ‚È‚¢B
Perl‚È‚çtr‚ðARuby‚Ȃ當Žš—ñƒNƒ‰ƒX‚Ìtrƒƒ\ƒbƒh‚ðA
Python‚È‚çstringƒ‚ƒWƒ…[ƒ‹‚ÌmaketransŠÖ”‚Æ•¶Žš—ñ‚̃ƒ\ƒbƒhtranslete‚ðŽg‚¤A
‚Æ‚¢‚¤Žè‚ª‚ ‚éB
awk‚È‚¢‚µitrˆÈŠO‚ÌjŒÃ“T“I‚ȃc[ƒ‹‚ʼnؗí‚É‚â‚é•û–@‚Í‚È‚¢‚ÆŽv‚¤B

350 F
Excel‚Å
‘SŠp”¼Šp•ÏŠ·‚Í ASC()
”¼Šp‘SŠp•ÏŠ·‚Í JIS()

351 F
>>347
1. EUC-JP‚É‚µ‚Ä(nkf‚Æ‚©)kakasi ‚ÅA–ß‚·
2. ‚»‚ꂾ‚Á‚½‚çʼn‚©‚çAnkf -Z
3. gawk‘O’ñ‚ÅA•¶Žš–ˆ‚Ɉ—(LANG‚ðŽw’肵‚ÄŽqƒvƒƒZƒX‹N“®)
awk‚Ì’†‚ŕ‚¶‚Ä‚â‚é‚Ì‚Í‚ß‚ñ‚Ç‚­‚³‚»‚¤

352 F
gawk 3.1.6
system(cmd) ‚ðŽg‚¤‚ÆAƒAƒ“ƒ`ƒEƒBƒ‹ƒXƒ\ƒtƒg(kaspersky)‚Ì
ƒAƒvƒŠƒP[ƒVƒ‡ƒ“—š—ð‚Ƀoƒbƒ`ƒtƒ@ƒCƒ‹‚ª“o˜^‚³‚ê‚é‚Ì‚ð”­Œ©B
close(cmd) ‚µ‚Ä‚à“¯‚¶B
while(cmd|getline>0){}
‚Å‘ã—p‚·‚é‚ÆŽc‚ç‚È‚­‚È‚Á‚½B??

353 F
•§‚Ńuƒ‹ƒJ”Û’è‚ÌŒˆ‹cÌ‘ð@u‘‚̉¿’lŠÏ‚Æ‘Š—e‚ê‚È‚¢v
http://www.cnn.co.jp/world/AIC201005120004.html
ƒeƒwƒ‰ƒ“‚ÅAƒuƒ‹ƒJ‚ð’…‚Ä“üo‘‚·‚鎞‚Á‚ÄAŠç‚̃`ƒFƒbƒN‚Ç‚¤‚·‚é‚ñ‚¾‚낤B
‘¼l‚â’j‚Å‚à‚΂ê‚È‚¢‚ÌH

354 F
>>353
Œë”šƒXƒ}ƒ“

355 F
http://pc11.2ch.sc/test/read.cgi/linux/1215431118/65

356 F
awk‚Ìprint‚ɂ‚¢‚Ä‚²‹³Ž¦‰º‚³‚¢B
‰º‚̂悤‚Èo—Í‚ª—L‚Á‚½ê‡A—Ⴆ‚Î
lrwxrwxrwx 1 root root 70 May 18 10:37 hoge
ls -al | awk '{print$1$2$2$4$6$7$8$9}' ‚Æ‚·‚ê‚Îu$5v‚Ì
u70v‚𔲂­‚±‚Æ‚ªo—ˆ‚Ü‚·‚ªA‚±‚ꂪ$100‚Æ‚©‚Ü‚Å‘±‚­ê‡A
u$5v‚¾‚¯‚𔲂«‚½‚¢ê‡‹Lq‚ª‘å•Ï‚É‚È‚è‚Ü‚·B
‰½‚©—Ç‚¢•û–@‚Í–³‚¢‚à‚Ì‚Å‚µ‚傤‚©H

357 F
$n‚É‘ã“ü‚ª‚ ‚é‚ÆA‚»‚ÌŽž“_‚Å$0‚ªÄ\¬‚³‚ê‚éB
‹æØ‚è‚Ì‹ó”’‚ª$5‚Ì‚ ‚Á‚½‚Æ‚±‚낾‚¯2ŒÂ‚É‚È‚é‚Ì‚ª‹C‚É‚È‚ç‚È‚¯‚ê‚ÎA
ls -al | awk '{$5 = ""; print}'
‚Æ‚·‚ê‚΂悢B
‹ó”’2ŒÂ‚ðC³‚·‚é‚Ȃ炱‚¤‚·‚éB
ls -al | awk '{$5 = ""; print $0}' | awk '{$1 = $1; print}'

358 F
$0 ‚Í—]Œv‚¾‚Á‚½B
ls -al | awk '{$5 = ""; print}' | awk '{$1 = $1; print}'

359 F
2‚‚߂Ìawk‚Ì$1 = $1‚͉½‚Ì‚½‚ß?

360 F
‚È‚É‚à‚µ‚È‚¢‚ÆA$0‚Í“Ç‚Ýž‚ñ‚¾‚»‚Ì‚Ü‚Ü‚È‚Ì‚Å‹ó”’2ŒÂ‚Í‹ó”’2ŒÂ‚Ì‚Ü‚ÜB
$1=$1‚Å‘ã“ü‚µ‚Ä‚â‚é‚ÆA$1, $2, ...‚ð‹ó”’1ŒÂ‚ł‚Ȃ¢‚¾‚à‚Ì‚ª$0‚É‘ã“ü‚³‚ê‚é‚Ì‚ÅA
‹ó”’2ŒÂ‚¾‚Á‚½‚Æ‚±‚낪‹ó”’1ŒÂ‚É‚È‚éB

361 F
2‚‚߂Ìawk‚ÉH‚킹‚½Žž“_‚Å$n (n>0)‚Í‹l‚܂邯‚Ç$0‚Í“ü—Ís‚»‚Ì‚Ü‚Ü
‹ó”’2ŒÂ‚È‚Ì‚Å$0‚ðÄ\¬‚·‚é‚Æ‹ó”’1ŒÂ‹æØ‚è‚É‚È‚é

362 F
>>357-358
”ñí‚ɉð‚è‚â‚·‚¢‚²à–¾A‚ ‚肪‚Æ‚¤‚²‚´‚¢‚Ü‚·B
‚È‚é‚Ù‚Ç‘ã“ü‚·‚邱‚Æ‚Å‰ðŒˆ‚·‚é‚ñ‚Å‚·‚ËB
•×‹­‚É‚È‚è‚Ü‚µ‚½B

363 F
$1 = $1 ‚Á‚ăCƒ}ƒCƒ`‚æ‚­‰ð‚ç‚ñ
$1‚Á‚ÄFS‚Å‹æØ‚ç‚ꂽˆê‚–ڂ¾‚æ‚ËH
‚È‚ñ‚Å‚»‚ꎩg‚ðŽ©•ª‚É‘ã“ü‚µ‚½‚çƒXƒy[ƒX‚ªÁ‚¦‚é‚ñH

364 F
$0‚ÌÄ\¬‚ªs‚í‚ê‚é‚©‚ç‚Á‚Äà–¾‚³‚ê‚Ă邾‚ëB
$0‚ÌÄ\¬‚Æ‚Í‚¢‚Á‚½‚ñ‚΂炵‚½$1,$2,...‚ðOFS‚ð‹²‚ñ‚Å
‚‚Ȃ°’¼‚·‚Á‚Ä‚±‚Æ‚È‚Ì‚ÅA‰½‚Å‹æØ‚ç‚ê‚Ä‚¢‚½‚©‚Í
•Û‘¶‚³‚ê‚È‚¢B

365 F
>>364
>$1=$1‚Å‘ã“ü‚µ‚Ä‚â‚é‚ÆA$1, $2, ...‚ð‹ó”’1ŒÂ‚ł‚Ȃ¢‚¾‚à‚Ì‚ª$0‚É‘ã“ü‚³‚ê‚é
‚Á‚Ä–ñ‘©Ž–‚ðŠo‚¦‚Ä‚¨‚¯‚Á‚Ä‚±‚Æ‚©‚¢H

366 F
‚¿‚å‚Á‚Æ‹C‚É‚È‚Á‚ÄŽŽ‚µ‚Ä‚Ý‚½B
% echo a b | gawk '{OFS="-";$1=$1;OFS="=";print}'
a=b
Ä\¬‚Í$1=$1‚ð‚â‚Á‚Ä‚·‚®‚¶‚á‚È‚­‚ÄAŽŸ‚É$0‚ªŽg‚í‚ê‚é‚Æ‚«A‚Á‚Ä‚±‚Æ
‚È‚Ì‚©‚È?

367 F
‰ð‚Á‚½
http://www.kt.rim.or.jp/~kbk/gawk-3.1/gawk.html
Œx: ˆê•”‚̃o[ƒWƒ‡ƒ“‚Ìawk‚Í NF‚ðŒ¸‚¶‚½‚Æ‚«‚É$0‚ÌÄ\’z‚ðs‚í‚È‚¢B
Œ‹‹Ç‚Ì‚Æ‚±‚ëAawk‚ɃŒƒR[ƒh‘S‘Ì‚ÌÄ\’z‚ð‹­§‚µ‚½‚Æ‚«‚É‚Í‚»‚ÌŽž“_‚Å
ƒtƒB[ƒ‹ƒh‚Ì’l‚ÆOFS‚ªŽg‚í‚ê‚éBÄ\’z‚ðs‚¤‚½‚ß‚É‚ÍA‰½‚ç‚©‚Ì–³ŠQ‚È
‘ã“ü‚ðs‚¤:
$1 = $1 # force record to be reconstituted

Œ«‚­‚È‚Á‚½B‚ ‚ñ‚ª‚ÆB

368 F
awk‚Íšú‚ª[‚¢‚Ì‚§

369 F
‹v‚µ‚Ô‚è‚É‚¢‚¢‚à‚ñ‚ðŒ©‚³‚¹‚Ä‚à‚ç‚¢‚Ü‚·‚½„ƒ

370 F
’m‚ç‚È‚©‚Á‚½B
•×‹­‚É‚È‚Á‚½B

371 F
‚Ý‚ñ‚È>357‚Ì‚¨ˆü‚Å‘½‚­‚ðŠw‚ñ‚¾‚ÈB

372 F
–¼‘OF
E-mailF
“à—eF
cygwin‚¾‚Æ
% cut -f1 -d, hoge.csv
‚æ‚è
% awk -F, '{print $1}' hoge.csv
‚Ì•û‚ª‘¬‚©‚Á‚½B
#ŽÀsŽžŠÔ‚Ë
#PerlHƒVƒ‰ƒl

373 F
>>372
sed -e 's/,.*//'‚Å‚àawk‚Æ“¯‚¶‚­‚ç‚¢‚¾‚©‚çAcut‚ÌŽÀ‘•‚ª’x‚¢‚ñ‚¾‚ËB
cut‚ª–³‘ʂɃIƒvƒVƒ‡ƒ“‘½‚¢Šˆ×‚¶‚á‚È‚¢?

374 F
ŽèŒ³‚ÌlinuxŠÂ‹«‚¾‚Æcut‚Ì•û‚ª‘¬‚¢‚Æ‚¢‚¤•’Ê‚ÌŒ‹‰Ê‚Å‚µ‚½‚ªB
hoge.csv‚Í6Œ…‚Ì—”3‚‚ðu,]‚Å‹æØ‚Á‚Ä•À‚ׂ½100–œs‚Ì
ƒtƒ@ƒCƒ‹‚Å‚·B
% time cut -f1 -d, hoge.csv >/dev/null
cut -f1 -d, hoge.csv > /dev/null 0.21s user 0.01s system 99% cpu 0.222 total
% time awk -F, '{print $1}' hoge.csv >/dev/nulll
awk -F, '{print $1}' hoge.csv > /dev/nulll 1.52s user 0.03s system 99% cpu 1.558 total
‚¿‚Ȃ݂Ƀo[ƒWƒ‡ƒ“‚Í
cut (GNU coreutils) 8.5
GNU Awk 3.1.7

375 F
‚ [‚È‚é‚Ù‚ÇA‚È‚ñ‚©”»‚Á‚½Bcygwin‚Ìfgetc()‚ª’x‚¢‚©‚炶‚á‚È‚¢‚©‚ÈB
fgetc()‚Æfgets()‚ÅŽžŠÔ‚ðŠr‚ׂ½‚Æ‚«‚Éfgetc()‚Ì•û‚ª‚¸‚Á‚Æ’x‚©‚Á‚½‹L‰¯‚ª‚ ‚éB

376 F
xgawk (gawk‚Å‚È‚­)‚É‚Æ‚ ‚éwebƒy[ƒW‚ðH‚ׂ³‚¹‚é‚ÆAXMLERRR (not well-formed)‚Å’†’f‚µ‚Ü‚·B
‚»‚̃y[ƒW‚ªwell-formed‚©‹Éˆ«‚©‚ÍŽ„‚É‚Æ‚Á‚Ä‚Ç‚¤‚Å‚à‚æ‚­A’P‚É“à—e‚𓾂½‚¢‚¾‚¯‚È‚Ì‚ÅA•¶––‚܂ň—‚µI‚¦‚Ä—~‚µ‚¢‚Ì‚Å‚·B
‚Ç‚¤‚É‚©‚È‚ç‚È‚¢‚Å‚µ‚傤‚©B

377 F
ƒVƒFƒ‹ƒXƒNƒŠƒvƒg“à‚ŃpƒCƒv“ü—Í‚³‚ꂽ‚à‚Ì‚ðˆ—‚·‚é
ƒAƒNƒVƒ‡ƒ“‚ðƒqƒAƒhƒLƒ…ƒƒ“ƒg‚Å‘‚­Ž–‚Ío—ˆ‚é‚Å‚µ‚傤‚©B

378 F
Ž¿–â‚Å‚·B
ƒf[ƒ^‚ª
|1|aaa|
|2|bbb|
|3|ccc|
‚È‚Ç‚Æ‚È‚Á‚Ä‚¢‚é‚Æ‚«
aaa
bbb
ccc
‚ðŽæ‚èo‚»‚¤‚Æ‚µ‚Ä
awk 'FS="|"{print $3}' ƒtƒ@ƒCƒ‹–¼
‚Æ‚µ‚½‚ñ‚Å‚·‚ªA1s–Ú‚¾‚¯‚ª‚¤‚Ü‚­‚Æ‚ê‚Ü‚¹‚ñB
ƒf[ƒ^ƒtƒ@ƒCƒ‹‚Ì1s–Ú‚ð‹ós‚É‚·‚ê‚Î‰ðŒˆ‚Å‚«‚È‚¢‚±‚Æ‚Í‚È‚¢‚ñ‚Å‚·‚ªA
‹ós‚ð“ü‚ê–Y‚ê‚Ä‚µ‚Ü‚¤Œœ”O‚ª‚ ‚è‚Ü‚·B
‚Ç‚¤‚·‚ê‚΂¢‚¢‚ñ‚Å‚µ‚傤‚©?

379 F
‚â‚肽‚¢‚±‚Æ‚Í awk 'BEGIN {FS="|"} {print $3}' ‚¶‚á‚È‚¢‚©‚ÆŽv‚¤‚ñ‚¾‚¯‚Ç

380 F
378‚Å‚·B
>>379
‚Ç‚¤‚à‚ ‚肪‚Æ‚¤‚²‚´‚¢‚Ü‚µ‚½B

381 F
gensub()‚É‚ÄAƒ}ƒbƒ`‚µ‚½10”Ô–ÚˆÈ~‚̃Oƒ‹[ƒv‚ÌŽw’è‚ÌŽd•û‚ð‹³‚¦‚Ä‚­‚¾‚³‚¢B
‰º‹LƒTƒCƒg‚Å‚ÍA17”Ô–Ú‚Ü‚Å•’Ê‚ÉŽw’è‚Å‚«‚é‚悤‚ÈŽ–‚ª‘‚¢‚Ä‚ ‚邯‚ÇA
http://tounderlinedk.blogspot.com/2010/08/gensub-n-awk.html
gensub(pattern,"\\10","g",$2) ‚Æ‚©‚­‚Æ
\\1(ƒ}ƒbƒ`‰ÓŠ)‚Æ0(•¶Žš)‚Æ‚µ‚ĉðŽß‚³‚ê‚¿‚á‚Á‚ÄãŽè‚­‚¢‚È‚©‚¢B
ƒVƒFƒ‹ƒXƒNƒŠƒvƒg•—‚©‚ÆŽv‚Á‚ÄA\\{10} ‚àŽŽ‚µ‚½‚¯‚ǃ_ƒƒ_ƒbƒ^[B
GNU Awk 3.1.5‚Å‚·B

382 F
BSD‚Ìjman‚É‚ÍA1‚©‚ç9‚Ü‚Å‚Ì”Žš‚Á‚Ä–¾‹L‚³‚ê‚Ä‚é‚È‚ B
ŽÀ‘•‚É‚æ‚Á‚ĈႤ‚Ì‚©‚È‚ 
ƒpƒ^[ƒ“‚ð“®“I‚ɶ¬‚µ‚ă}ƒbƒ`‚³‚¹‚悤‚Æ‚µ‚Ä‚é‚©‚猋\¢‚é(LEƒÖE`)
http://www.linux.or.jp/JM/html/GNU_gawk/man1/gawk.1.html

383 F
>>381
ƒ}ƒjƒ…ƒAƒ‹‚É‚Í1‚©‚ç9‚Ü‚Å‚Á‚Ä‘‚¢‚Ä‚ ‚邵
Within the replacement text s, the sequence \n, where n is a digit from 1 to 9, may be
used to indicate just the text that matched the n'th parenthesized subexpression.
ƒ\[ƒX‚ÌŠY“–‰ÓŠ(builtin.c‚Ì2542s–Ú‚ ‚½‚è‚©‚ç)‚Ý‚Ä‚à1Œ…ŒÀ’è‚̃ƒWƒbƒN‚¾‚æB(3.1.7’²‚×)
int dig = scan[1] - '0';
‚È‚ñ‚Ä‚â‚Á‚Ä‚éB

384 F
ˆê’U‚Ô‚Á‚½Ø‚邵‚©‚È‚¢‚ñ‚¶‚á‚Ë

385 F
>>383
‚Ç‚¤‚à‚ ‚肪‚Æ‚¤‚²‚´‚¢‚Ü‚·B
>>384
‚¿‚å‚Á‚ÆŒ©‰h‚¦ˆ«‚­‚Ȃ邯‚Ç‚»‚¤‚·‚é(LEƒÖE`)

386 F
>>381
‚È‚ñ‚Å‚»‚±‚̂ЂƂÍ16‚Ü‚Å‚Å‚«‚½‚ñ‚¾H

387 F
10‚Ì‘ã‚í‚è‚É:‚ðŽg‚Á‚Ä‚¢‚½‚肵‚ÄB

388 F
‚±‚̃XƒŒ‚ª·‹µ‚È‚Ì‚ª’¿‚µ‚¢‚©‚ç
‹L”OƒpƒsƒRB

389 F
15”NˆÈã‘O‚¾‚¯‚Çawk‚̕׋­Žn‚ß‚Ä“¯Žž‚Éperl‚̕׋­‚à‚µ‚Ä‚½‚ç
‹C•t‚¢‚½‚çperl‚΂Á‚©‚è‚â‚Á‚Ä‚Äawk‚·‚Á‚©‚è–Y‚ê‚Ä‚µ‚Ü‚Á‚½‚È‚Ÿ
¡‚ÍperlŽÌ‚Ä‚Äê‚çpython‚â‚Á‚Ă邯‚Çawk‚à‚¢‚¢‚æ‚Ë

390 F
Busybox‚É‘g‚Ýž‚ß‚ÎA‚»‚ꂱ‚»†”ÑŠí‚â—â‘ ŒÉ‚Å‚à“®‚­‚©‚ç‚È‚ B
ŽèŒy‚Å‚ ‚é‚É‚àŠÖ‚í‚炸AŒ‹\‚“x‚Ȉ—‚àƒKƒŠƒKƒŠ‘‚¯‚é‚©‚çD‚«B
C‚ƃVƒFƒ‹ƒXƒNƒŠƒvƒg‚ªD‚«‚¾‚©‚çA•¶–@“I‚É‚à‚µ‚Á‚­‚è—ˆ‚éB
ãˆÊŒÝŠ·‚ÌPerl‚à‘åD‚«B

391 F
>>376‚Å‚·‚ªA’N‚à‚©‚Ü‚Á‚Ä‚­‚ê‚È‚¢‚̂Ŏ₵‚³‚ÅŽ€‚É‚»‚¤‚Å‚·B

392 F
>>391
‚Ç‚ê‚Å‚àD‚«‚È‚Ì‚ð‘I‚×
1. xgawk‚ð‰ü‘¢
2. ƒGƒ‰[‚É‚È‚éXML‚ðŽ–‘O‚ÉC³‚µ‚Äwell-formed‚É‚µ‚Ä‚©‚çH‚킹‚é
3. xgawk‚ÍŽÌ‚Ä‚Ä•Ê‚ÌŒ¾ŒêAƒ‰ƒCƒuƒ‰ƒŠ‚ðŽŽ‚·

393 F
jawk‚ªjwalk‚ÉŒ©‚¦‚Ä‚µ‚Ü‚¤

394 F
“®‚­ŠÂ‹«‚Ì‘½‚³‡‚ɃCƒ“ƒ^ƒvƒŠƒ^‚ð‘I‚Ô‚ñ‚È‚çA
ƒVƒFƒ‹ƒXƒNƒŠƒvƒg > awk >>> perl >>>>> python >>>>> ruby >>> haskel etc.
‚ƂȂ邾‚낤‚ÈB
ƒVƒFƒ‹ƒXƒNƒŠƒvƒg‚̓VƒFƒ‹ˆË‘¶‚È•”•ª‚ª‘½‚­Aperl ‚Ù‚Ç‚‹@”\‚È‚à‚Ì‚à—v‚ç‚È‚¢B
‚»‚ñ‚ÈŽžA¬‚³‚È’[––‚Å‚àƒXƒ}[ƒg‚É“®‚¢‚Ä‚­‚ê‚é awk ‚É‚¿‚ñ‚±–u‚ÂB
>>389
Œ¾Œê‚ÉŽÌ‚Ä‚é‚àE‚¤‚à‚È‚¢‚æB‚»‚ÌŽžX‚É“s‡‚Ì—Ç‚¢‚à‚Ì‚ð‘g‚݇‚킹‚ÄŽg‚¤‚Ì‚ªUNIX“I‚È”­‘zB

395 F
>>394
uˆê”­‚â‚낤v‚Å‚·‚ËI

396 F
awkŋߕ׋­‚µ‚Ä‚éBperl‚æ‚è‘S‘RŠÈ’PB
‚±‚ê‚Ȃ牴‚Å‚àÁÜ‚µ‚È‚­‚Ä‚·‚Ý‚»‚¤

397 F
>>396@‚ª‚ñ‚ÎI

398 F
sjis‚Å‘‚¢‚½
/[/{print}
‚ðŽÀs‚·‚é‚Æ
awk:
awk: ^ ³‹K•\Œ»‚ªI’[‚³‚ê‚Ä‚¢‚Ü‚¹‚ñB
awk: ’v–½“I: [ ‚Ü‚½‚Í [^ ‚ª‘Ήž‚µ‚Ü‚¹‚ñB: /[/{print}/
‚̃Gƒ‰[‚É‚È‚Á‚Ä‚µ‚Ü‚¢‚Ü‚·B
[‚Ì2ƒoƒCƒg–Ú‚ª[‚È‚¹‚¢‚¾‚ÆŽv‚¢‚Ü‚·‚ªA‚Ç‚¤‘Ήž‚µ‚½‚ç‚¢‚¢‚Å‚µ‚傤‚©H
“ü—̓tƒ@ƒCƒ‹‚Ísjis‚Å‘‚©‚ê‚Ä‚¢‚ÄA•¶ŽšƒR[ƒh•ÏŠ·‚Í‚Å‚«‚Ü‚¹‚ñB

399 F
>>398
ŠÂ‹«‚Ì–â‘è‚È‚ñ‚¾‚©‚çAŽÀsŠÂ‹«‚­‚ç‚¢‚Ü‚Æ‚à‚É‘‚¯‚æB

400 F
>>398
gawk ‚ðŽg‚¤

401 F
ŠÂ‹«‚ÍCentOS-5.5-x86_64‚ÅGNU Awk 3.1.5‚Å‚·B
/bin/awk‚̓Vƒ“ƒ{ƒŠƒbƒNƒŠƒ“ƒN‚ÅAŽÀ‘Ì‚Ígawk‚Å‚µ‚½B

402 F
>>401
--help ‰Å

403 F
Windows‚V(64bit)‚ÅŽg‚¦‚éawk‚ ‚è‚Ü‚·‚©H

404 F
32bit”Å‚Ìawk‚ð‚ðŽg‚¤‚ñ‚¶‚áƒ_ƒH

405 F
‚±‚¤‚·‚邱‚ƂőΉž‚Å‚«‚Ü‚µ‚½B
/\x81\[/{print}

406 F
‚»‚ê‚Å‚¢‚¢‚È‚çA/[[]/‚Å‚à‚¢‚¢ŠóƒKƒXB
ª–{“I‚È‰ðŒˆ‚É‚È‚Á‚Ä‚È‚¢‚¯‚Ç‚Ë‚¥B

407 F
ƒVƒ“ƒOƒ‹ƒNƒI[ƒe[ƒVƒ‡ƒ“‚âƒ_ƒuƒ‹ƒNƒI[ƒe[ƒVƒ‡ƒ“‚ÌŽg‚¢•ª‚¯‚¶‚á‚Ë`

408 F
ª–{“I‚È‰ðŒˆ‚·‚é‚Æ‚µ‚½‚當ŽšƒR[ƒh‚ð•Ï‚¦‚邱‚Æ‚Å‚µ‚傤‚©H

409 F
“ú–{Œê‚Ì•¶ŽšƒR[ƒh‚ɑΉž‚µ‚Ä‚éawk‚ðŽg‚¤A‚Æ‚¢‚¤•û–@‚à‚ ‚éB
¡‚ ‚é‚Ì‚©‚Ç‚¤‚©’m‚ç‚È‚¢‚¯‚ÇB

410 F
¡‚Ìgawk‚Í•’Ê‚ÉUnicode‘Ήž‚µ‚Ä‚é‚Ý‚½‚¢
$ echo '‚Ä‚·‚Æ' | gawk '/[‚Ÿ-‚ñ]/ { print length($0) }'
3
UTF-8ƒƒP[ƒ‹‚Å‚µ‚©ŽŽ‚µ‚Ä‚È‚¢‚¯‚Ç
cygwin‚Å‚à‘åä•v

411 F
>>404
gawk‚Å‚¢‚¢‚©‚È

412 F
>>405
–â‘è‚Í‰ðŒˆ‚µ‚½‚Ì‚©‚à‚µ‚ç‚ñ‚ªAˆê‰žB
ˆÈ‰º2‚‚ÌWin—pƒoƒCƒiƒŠ‚Í–â‘è‚È‚¢‚Ì‚ÅAƒ\[ƒX‚à‚ç‚Á‚ÄLinuxã‚ŃRƒ“ƒpƒCƒ‹‚µ‚Ä‚Ý‚½‚çH
ttp://gnuwin32.sourceforge.net/packages/gawk.htm
ttp://www.kt.rim.or.jp/~kbk/gawk-3.1/

413 F
ƒT[ƒoŠÇ—ŽÒ‚¶‚á‚È‚¢‚̂ŃT[ƒo‚ð‚¢‚¶‚邱‚Æ‚Í‚Å‚«‚È‚¢‚Å‚·B
‚±‚ê‚É‚µ‚½‚çsjis‚Å‚à“®‚­‚悤‚É‚È‚é‚Ì‚Å‚µ‚傤‚©H

414 F
>>413
­‚È‚­‚Æ‚àŽ©•ª‚ªŽŽ‚µ‚½Windows2003ã‚Å‚Í‚ÈB
¤tes.awk ¦sjis
/[/{print}
¢
CentOS5.5ã
$ gawk -f tes.awk readme.ja
awk: tes.awk:1:
awk: tes.awk:1: ^ ³‹K•\Œ»‚ªI’[‚³‚ê‚Ä‚¢‚Ü‚¹‚ñB
awk: tes.awk:1: ’v–½“I: [ ‚Ü‚½‚Í [^ ‚ª‘Ήž‚µ‚Ü‚¹‚ñB: /[/{print}/
Windows2003ã
> gawk -f tes.awk readme.ja
˃}ƒbƒ`‚µ‚½•¨‚ª•\Ž¦‚³‚ê‚é
Linuxã‚ŃƒP[ƒ‹‚ðsjis.japanese‚Æ‚©‚É‚·‚ê‚΂¢‚¢‚Ì‚©‚ÆŽv‚Á‚½‚ªAƒƒP[ƒ‹•ÏXŽ©‘Ì‚ª‚¤‚Ü‚­‚¢‚©‚È‚©‚Á‚½‚íB
¢‚Á‚Ă鎖‚ª‚ ‚é‚È‚çAÅI“I‚ɉ½‚ª‚µ‚½‚¢‚©Œ¾‚Á‚½‚Ù‚¤‚ª‚¢‚¢‚æB

415 F
Windows2003‚¾‚Æ‚¿‚á‚ñ‚Æ“®‚­‚ñ‚Å‚·‚ËB
¢‚Á‚Ä‚¢‚½‚±‚Æ‚Í405‚Å‰ðŒˆ‚µ‚½‚Ì‚Å‘åä•v‚Å‚·B
¡‚Íuª–{“I‚ȉðŒˆv‚É‹»–¡‚ª‚ ‚Á‚½‚Ì‚Å‚¨•·‚«‚µ‚½ŽŸ‘æ‚Å‚·B

416 F
awk‚ŃVƒFƒ‹‚ÌPATH•Ï”‚ðƒ}ƒbƒ`‚³‚¹‚é‚Æ‚«‚ɃXƒ‰ƒbƒVƒ…//‚ðŽg‚í‚È‚¢•û–@‚ð‹³‚¦‚Ä‚¢‚½‚¾‚¯‚Ü‚¹‚ñ‚©H

417 F
>>416
‰SŽÒ‚¾‚©‚çƒ}ƒ‹ƒ`‚ª‹–‚³‚ê‚é‚Æ‚Å‚àŽv‚Á‚½‚©H

418 F
‚²‚ß‚ñ‚È‚³‚¢I
’m‚è‚Ü‚¹‚ñ‚Å‚µ‚½B

419 F
”z—ñ‚Ì—v‘f”‚𒲂ׂé‚È‚çAƒ‹[ƒvˆ—‚µ‚È‚¢‚Æ•ª‚©‚ç‚È‚¢H
length ‚Ý‚½‚¢‚È‚Ì‚Í–³‚¢H

420 F
‚ ‚é‚æB‚Ü‚³‚µ‚­Alength(array)B

421 F
‚»‚ñ‚È‚à‚ñ‚Ë‚¥‚æ‚—
‚ÆŽv‚Á‚½‚çgawk‚É‚Í‚ ‚é‚Ì‚©
length([s]) Returns the length of the string s, or the
length of $0 if s is not supplied. Starting
with version 3.1.5, as a non-standard exten-
sion, with an array argument, length() returns
the number of elements in the array.

422 F
‚Þ‚µ‚ë”z—ñ‚ª‘¶Ý‚·‚é‚Á‚Ä‚±‚Æ‚Í‚»‚Ì”z—ñ‚ð쬂·‚é‰ß’ö‚ª‚ ‚邾‚ëH
쬂·‚é‚Æ‚«‚É”‚¦‚ê‚΂¢‚¢‚ñ‚¶‚á‚ËH

423 F
˜A‘z”z—ñ‚¾‚Á‚½‚甂¦‚È‚¢‚Ì‚ª•’Ê‚¾‚ª‚È

424 F
function ‚ň—‚·‚鎞A”z—ñ‚¾‚¯‚ł̓_ƒ‚Å—v‘f”‚Ü‚Å•K—v‚È‚ñ‚¾‚©‚È‚ŸA
‚Á‚ÄŽ–‚ª•ª‚©‚è‚Ü‚·‚½

425 F
function ‚É“n‚·‚¾‚¯‚È‚ç—v‘f”‚È‚ñ‚Ä‚¢‚ç‚È‚¢‚ñ‚¶‚á‚È‚¢H

426 F
$1 = $1‚Ý‚½‚¢‚ȃgƒŠƒbƒN‚ðŒ©‚é“x‚ɉœ‚ª[‚¢‚ÆŒ¾‚¤‚æ‚è‚Í•³‚ÉŒ©‚¦‚Ä‚«‚Ü‚·
–|‚·‚ÆUNIX•¶‰»‚»‚Ì‚à‚Ì‚ª
‚Ü‚ A‚ ‚­‚Ü‚Å‚¨‚ê‚ÌŽåŠÏ‚Å‚·‚ª‚Ë

427 F
>>426
‚‚—‚‹‘åD‚«‚ȃIƒCƒ‰‚ÉŒ–‰Ü”„‚é‚Ì‚©‚—
ƒEƒjƒbƒNƒX•¶‰»Å‚Ii‚m‚sŒn‚Í‚t‚m‚h‚w‚̃pƒNƒŠj

428 F
>>427
‘SŠp‰pŽšŽg‚¤“z‚ª awk ‘åD‚«‚¾‚Æ‚Í“ž’êŽv‚¦‚ñ

429 F
‚Ü‚ “~‹x‚ÝŠúŠÔ‚¾‚à‚Ì‚ËB

430 F
¥tes09.awk
BEGIN{
@@if (ARGV[1]=="")
@@@@ARGV[1]="hoge.txt"
@@while (getline < ARGV[1] > 0) print "BEGIN\t"$0
}
ARGV[1]=="hoge.txt"{
@@print "BODY\t"$0
}
šŽ¿–â
ã‹LƒXƒNƒŠƒvƒg‚ðˆø”‚ð•t‚¯‚½ê‡‚Æ•t‚¯‚È‚¢ê‡‚ð‚»‚ê‚¼‚êŽÀs‚µ‚Ü‚µ‚½B
¥gawk -f tes09.awk hoge.txt
BEGIN@ arima_yuuichi@example.com
BEGIN@ ooizumi_sadawo@example.com
BEGIN@ taguchi_kenji@example.com
BODY@@arima_yuuichi@example.com
BODY@@ooizumi_sadawo@example.com
BODY@@taguchi_kenji@example.com
¥gawk -f tes09.awk
BEGIN@ arima_yuuichi@example.com
BEGIN@ ooizumi_sadawo@example.com
BEGIN@ taguchi_kenji@example.com
‚±‚±‚ÅABEGIN‹å‚Å‚Ì ARGV[1]="hoge.txt" ‚Æ‚¢‚¤‘ã“ü‚ð–{•Ò(?)‚Å‚à—LŒø‚É‚·‚éˆ×
‚É‚Í‚Ç‚¤‚·‚ê‚΂¢‚¢‚Å‚µ‚傤‚©H

431 F
‚È‚É‚à‚µ‚È‚­‚Ä‚à—LŒø‚¾‚ÆŽv‚¤‚ñ‚¾‚¯‚Ç
Ž¿–â‚ÌŽïŽ|‚ª‚í‚©‚ç‚ñ

432 F
•ª‚©‚èh‚­‚Ä‚·‚Ý‚Ü‚¹‚ñB
hoge.txt‚Ì’†g‚͉º‹L‚Å‚·B
¥
arima_yuuichi@example.com
ooizumi_sadawo@example.com
taguchi_kenji@example.com
>>430‚ÍWin32‚̃oƒCƒiƒŠuGNU Awk 3.1.7(windows special Nov 24 2009)v‚ðŽg—p‚µ‚½Œ‹‰Ê‚Å‚·B
‰º‚Ì‚Ù‚¤‚ÌŽÀsŒ‹‰Ê‚Å‚ÍABEGIN‹å‚Å‚ÌARGV[1]‚Ö‚Ì‘ã“ü‚ÍBEGIN‹å‚Å‚Í—LŒø‚Å‚·‚ªA
–{•Ò‚Å‚Í—LŒø‚É‚È‚Á‚Ä‚¢‚È‚¢‚Ì‚Åo—Í‚³‚ê‚Ä‚¢‚È‚¢‚悤‚ÉŒ©‚¦‚Ü‚·B
‚¿‚È‚Ý‚ÉACentOS5.5ã‚Ì GNU Awk 3.1.5 ‚ł͉º‹LƒGƒ‰[‚É‚È‚è‚Ü‚µ‚½B
¥
gawk: tes09.awk:2: @@if (ARGV[1]=="")
gawk: tes09.awk:2: ^ •\Œ»‚Ì char 'E' ‚Í•s³‚Å‚·B

433 F
“ü—̓ŒƒR[ƒh‚ª1Œ‚à–³‚¢‚©‚ç‚Å‚µ‚å
>gawk: tes09.awk:2: ^ •\Œ»‚Ì char 'E' ‚Í•s³‚Å‚·B
‚±‚ê‚Í‘SŠpƒXƒy[ƒX

434 F
>BEGIN@ arima_yuuichi@example.com
>BEGIN@ ooizumi_sadawo@example.com
>BEGIN@ taguchi_kenji@example.com
ƒRƒŒ‚Ígetline‚Å“Ç‚ñ‚Åo—Í‚µ‚½‚à‚Ì
>BODY@@arima_yuuichi@example.com
>BODY@@ooizumi_sadawo@example.com
>BODY@@taguchi_kenji@example.com
ƒRƒŒ‚̓Rƒ}ƒ“ƒh‚ÅŽw’肵‚½ƒtƒ@ƒCƒ‹‚©‚ço—Í‚µ‚½‚à‚Ì
‚½‚Æ‚¦‚Î
{
@@print "BODY\t"$0
}
‚Æ‚µ‚Ä‚â‚ê‚Ζ¾‚ç‚©

435 F
Ž¿–â‚ÌŽïŽ|‚ÍAƒvƒƒOƒ‰ƒ€iƒXƒNƒŠƒvƒgj‚Ì’†‚Å“ü—̓tƒ@ƒCƒ‹“™‚Ì
ƒRƒ}ƒ“ƒhƒ‰ƒCƒ“ˆø”‚ð’ljÁ‚µ‚½‚¢‚Æ‚¢‚¤Ž–‚Å‚·‚©B
ƒRƒ}ƒ“ƒhƒ‰ƒCƒ“ˆø”‚Ì”z—ñ‚Í ARGV ‚Å‚·‚ªAƒRƒ}ƒ“ƒhƒ‰ƒCƒ“ˆø”‚Ì
ŒÂ”‚ðŠi”[‚·‚é ARGC ‚Æ‚¢‚¤‘g‚Ýž‚Ý•Ï”‚ª‚ ‚è‚Ü‚·B
ARGV”z—ñ‚ð’ljÁ‚µ‚½‚çˆê‚É ARGC ‚ðC³‚µ‚Ä‚ ‚°‚È‚¢‚ÆAawk‚Í”z—ñ‚ª
’ljÁ‚³‚ꂽŽ–‚ð”FŽ¯‚µ‚Ü‚¹‚ñB
BEGIN“à‚ÅARGV”z—ñ‚ð’ljÁ‚µ‚½•ª‚¾‚¯ARGC‚ðƒCƒ“ƒNƒ‹ƒƒ“ƒg‚µ‚Ä‚ ‚°‚ê‚Î
’ljÁ‚³‚ꂽARGV”z—ñ‚ÅŽw’肳‚ꂽƒtƒ@ƒCƒ‹‚à–{•¶‚̈—‚É“n‚³‚ê‚Ü‚·B
ŽÖ‘«‚Æ‚µ‚Ä‚ÍA
Œ»Ýˆ—’†‚̃tƒ@ƒCƒ‹–¼‚ªŠi”[‚³‚ê‚Ä‚¢‚é”z—ñ ARGV ‚̃Cƒ“ƒfƒbƒNƒX‚ð
Ž¦‚·‘g‚Ýž‚Ý•Ï”‚Í ARGIND ‚Å‚·B
Ž„‚Ì‚Í Win”Å‚Ì gawkm115 ‚Å‚·BƒXƒNƒŠƒvƒg“à‚ÅARGV/ARGC‚ð‘€ì‚µ‚Ä‚à
Šú‘Ò’Ê‚è³í‚É“®‚«‚Ü‚·‚æB
ŽŽ‚µ‚Ä‚Ý‚Ä‚ËB

436 F
ŠF—lƒŒƒX‚ ‚肪‚Æ‚¤‚²‚´‚¢‚Ü‚·B
>>433
>‚±‚ê‚Í‘SŠpƒXƒy[ƒX
‚¨’p‚¸‚©‚µ‚¢ŒÀ‚è‚Å‚·(Š¾) o‹Î‘O‚ÉŽv‚¢‚‚«‚ÅŽŽ‚µ‚½‚à‚Ì‚ÅAƒXƒŒ—p‚É‘‚¢‚½
•¨‚ð‚»‚Ì‚Ü‚ÜƒRƒs‚Á‚Ä‚Ü‚µ‚½EEE
>>434
BEGIN‹å‚Ìgetline‚Å‚ÍARGV[1]‚Ö‚Ì‘ã“ü‚ª‚Å‚«‚Ä‚¢‚é‚Ì‚ÉA–{•¶‚Å‚Í—LŒø‚É
‚È‚ç‚È‚¢‚Æ‚¢‚¤Ž–‚ð“`‚¦‚½‚©‚Á‚½‚Ì‚Å‚·B

437 F
>>435
Ž©•ª‚ÌŽ¿–â‚ðŒ©’¼‚µ‚Ä‚Ý‚é‚Æ‘S‚­Ž¿–â‚É‚È‚Á‚Ä‚¢‚È‚©‚Á‚½‚É‚àŠÖ‚í‚炸ƒGƒXƒp[
‚µ‚Ä‚­‚¾‚³‚Á‚Ä‚ ‚肪‚Æ‚¤‚²‚´‚¢‚Ü‚·B
ARGC‚ɂ‚¢‚Ä—‰ð‚Å‚«‚Ü‚µ‚½B
BEGIN{
@@ARGV[1]="hoge.txt"
@@ARGC=2
}
ARGV[1]=="hoge.txt"{
@@print "BODY\t"$0
}
‚±‚ñ‚ÈŠ´‚¶‚ňÓ}‚µ‚½’Ê‚è‚Éo—Í‚³‚ê‚Ü‚µ‚½B
‚¨‚©‚°‚³‚Ü‚Å¡‚Ü‚Åawk‚Ì•â•‚Æ‚µ‚Äsh‚ðŽg‚Á‚Ä‚Ü‚µ‚½‚ªAawk‚¾‚¯‚Å‘‚¯‚鎖‚ª
‘½‚­‚È‚è‚Ü‚µ‚½B
ˆø”‚ɃƒCƒ‹ƒhƒJ[ƒh‚ðŽw’肵‚ÄAARGIND ‚Å“Á’èƒpƒ^[ƒ“‚̃tƒ@ƒCƒ‹–¼‚Ì
•¨‚݈̂—‚ð‚·‚é‚Æ‚©‚Å‚«‚»‚¤‚Å‚·‚ËB

438 F
Ž¿–â‚Å‚·B
My Documents\2011\01\09(“ú)
‚Æ‚¢‚¤‚悤‚ɃtƒHƒ‹ƒ_‚ðØ‚Á‚Ä‚¢‚ÄA¡“ú‚Écd‚·‚邽‚ß‚ÉA
today.bat
gawk -f today.awk > tmp.bat
tmp.bat
del tmp.bat
today.awk
BEGIN{year = strftime("%Y",systime()+9*60*60);
month = strftime("%m",systime()+9*60*60);
date = strftime("%d",systime()+9*60*60);
day = strftime("%a",systime()+9*60*60);
gsub(/(Sun)/, "(“ú)", day);
gsub(/(Mon)/, "(ŒŽ)", day);
gsub(/(Tue)/, "(‰Î)", day);
gsub(/(Wed)/, "(…)", day);
gsub(/(Thu)/, "(–Ø)", day);
gsub(/(Fri)/, "(‹à)", day);
gsub(/(Sat)/, "(“y)", day);
print "cd \"My Documents\" year "\" month "\" date day
}
‚Æ‚¢‚¤‚悤‚Ɉ—‚µ‚Ä‚¢‚Ü‚·B
‚±‚ê‚Á‚ÄA‚Ђå‚Á‚Æ‚µ‚ÄAgawk‚Ì“à•”‚©‚çprint‚¹‚¸‚ÉŽÀs‚·‚邱‚Ƃ͉”\‚Å‚µ‚傤‚©?

439 F
systemŠÖ”‚Åo—ˆ‚é‚ñ‚Å‚ÍHwin‚Í•ª‚©‚ç‚È‚¢‚¯‚Ç

440 F
system("cd \"My Documents\" year "\" month "\" date day);
‚Æ‚©‚Å‚Í‚¾‚ß‚Å‚µ‚½B

441 F
>440
‚È‚ñ‚© " ‚Æ \ ‚Ì”‚ª‚¨‚©‚µ‚­‚ËH
My Documents\2011\01\09(“ú)
«
"My Documents\\2011\\01\\09(“ú)"
«
"My Documents\\" year "\\" month "\\" date day
‚¾‚æ‚ÈH

442 F
ƒAƒhƒoƒCƒX‚ ‚肪‚Æ‚¤‚²‚´‚¢‚Ü‚·B
‚Í‚¢B
\‚Í‚¨‚Á‚µ‚á‚é‚Æ‚¨‚è‚Å‚·‚ªAˆË‘R‚Æ‚µ‚Ä‚¾‚ß‚Å‚·B
today.bat‚ðƒRƒ}ƒ“ƒhƒvƒƒ“ƒvƒg‚©‚çŽÀs‚·‚é‚ÆA
print‚µ‚Ä‚»‚Ìtmp.bat‚ðŽÀs‚·‚é438‚̃pƒ^[ƒ“‚¾‚ÆA
‚¿‚á‚ñ‚Æcd‚Å‚«‚ÄA¡“ú‚̃tƒHƒ‹ƒ_‚Ɉړ®‚·‚é‚Ì‚Å‚·‚ªA
system("cd \\"My Documents\\" year "\\" month "\\" date day);
‚¾‚ÆAˆÚ“®‚¹‚¸‚ÉI—¹‚µ‚Ä‚µ‚Ü‚¢‚Ü‚·B
‚È‚ñ‚Å‚¾‚ë[‚ÈB

443 F
cygwin‚ð“ü‚ê‚Ä‚â‚Á‚Ä‚Ý‚½
system‚Ísh‚Å“®‚­‚Á‚Û‚¢‚Ì‚Å
rm /cygdrive/c/Documents\ and\ Settings/test.txt
‚Ý‚½‚¢‚É‘‚­‚Æ‚¿‚á‚ñ‚ÆÁ‚¦‚é‚Ý‚½‚¢

444 F
>>438,442
438‚Å‘‚¢‚Ä‚égawk‚Å‚â‚肽‚¢‚±‚Æ‚Á‚Ă̂̓oƒbƒ`ƒtƒ@ƒCƒ‹‚Å‚â‚Á‚Ä‚é‚Ì‚Æ“¯‚¶‚±‚Æ?
‚¾‚Á‚½‚ç–³—B
system() ‚Åcd‚µ‚Ä‚àsystem()‚©‚ç•Ô‚Á‚Ä‚«‚½‚Æ‚±‚ë‚ÅŒ³‚É–ß‚éB

445 F
‚Ç‚¤‚¹•³nixƒc[ƒ‹‚¾‚©‚ç“ú–{Œê‚â‹ó”’‚̓_ƒ‚È‚ñ‚¾‚ë

446 F
>>444
‚È‚é‚Ù‚ÇBgawk“à•”‚ł̓VƒXƒeƒ€‚ðŽÀs‚µ‚Ä‚¢‚Ä‚àAgawk‚ðo‚é‚ÆA‚»‚ê‚àI‚í‚Á‚¿‚Ⴄ‚ñ‚Å‚·‚ËB‚È‚é‚Ù‚ÇB
‚æ‚­‚í‚©‚è‚Ü‚µ‚½B‚ ‚肪‚Æ‚¤‚²‚´‚¢‚Ü‚·B

447 F
‚Æ‚è‚ ‚¦‚¸AWK‚Å‘‚¢‚½‹‘å‚ȃXƒNƒŠƒvƒg‚ðAŽI‚ʼnñ‚µ‘±‚¯‚é‚Ì‚Í‚â‚ß‚Ä‚­‚¾‚³‚¢B
”ñŒø—¦‹É‚Ü‚è‚È‚¢

448 F
‚»‚ê‚Í‚»‚Ìl‚ÉŒ¾‚Á‚ĉº‚³‚¢

449 F
‚»‚Ìê‚ÅŽg‚¦‚é‚Ì‚ªawk‚¾‚¯‚¾‚Á‚½‚ñ‚Å‚·

450 F
•¶Žš‚©‚當ŽšƒR[ƒhŽæ‚èo‚¹‚È‚¢‚Ì‚ªŽc”O
‹t‚Ísprintf("%c", 0x41)‚Æ‚©o—ˆ‚é‚Ì‚É‚È

451 F
>>447
Œø—¦‚Ì‚¢‚¢ƒvƒƒOƒ‰ƒ€‚Å‘‚«’¼‚µ‚Ä‚â‚ê‚΂¢‚¢‚¶‚á‚È‚¢B

452 F
>>450
‚Âord.awk
gawk•t‘®‚̃‰ƒCƒuƒ‰ƒŠ‚ÅAascii‚͈̔͂̑Ήž•\ì‚Á‚ĂЂ­‚Æ‚¢‚¤
ŠÈ’P‚ÈŽd‘g‚ÝB


453 F
#!/bin/gawk --re-interval -f
ª‚̃tƒ@ƒCƒ‹‚ðŽÀs‚·‚é‚ƃIƒvƒVƒ‡ƒ“‚ª•s³‚ÆŒ¾‚í‚ê‚ÄŽÀs‚Å‚«‚È‚¢‚Ì‚Å‚·‚ª
ƒRƒ}ƒ“ƒhƒ‰ƒCƒ“‚̃IƒvƒVƒ‡ƒ“‚ÅŽw’è‚·‚éˆÈŠO‚É‚â‚è•û‚Í‚ ‚è‚Ü‚·‚©H

454 F
>>453
–³—‚ÉawkƒXƒNƒŠƒvƒg‚É‚¹‚¸‚É
#!/bin/sh
awk '
#awkƒR[ƒh
'
‚Á‚Ä‚¢‚¤ƒVƒFƒ‹ƒXƒNƒŠƒvƒg‚É‚µ‚½‚ç‚Ç‚¤‚©‚È

455 F
#!‚ŃCƒ“ƒ^ƒvƒŠƒ^‚É“n‚·ˆø”‚̈µ‚¢‚ÍŽÀ‘•ˆË‘¶‚¾‚©‚ç‚ÈB
linux‚¾‚Æ‹ó”’‚ðŠÜ‚ñ‚¾‘S‚Ä‚Ì•¶Žš—ñ‚ªˆê‚‚̈ø”‚Æ‚µ‚Ä
“n‚³‚ê‚é‚Ì‚ÅA•¡”‚̃IƒvƒVƒ‡ƒ“‚Í“n‚¹‚È‚¢B•s•Ö‚¾‚¯‚Ç
‚»‚¤‚¢‚¤‚à‚Ì‚È‚Ì‚Å‚ ‚«‚ç‚ß‚Ä‚­‚¾‚³‚¢B‘f’¼‚ɃVƒFƒ‹‚ð
ŠÔ‚É“ü‚ê‚é‚Ì‚ª‚¢‚¢‚ÆŽv‚¤‚æB

456 F
gawk '$3!="*"' in.txt>out.txt
‚Æ‚¢‚¤ˆ—‚ÅA20GB‚®‚ç‚¢‚Ìin.txt‚ð”•SMB‚®‚ç‚¢‚ɃXƒŠƒ€ƒAƒbƒv‚µ‚Ä‚Ü‚·B
–â‘è‚ÍA‚»‚̈—‚ð10–{‚Ù‚Ç•Às‚Éì‹Æ‚³‚¹‚Ä‚¢‚é‚ñ‚Å‚·‚ª
top‚ÅŒ©‚Ä‚Ý‚é‚Æ‚Ù‚Æ‚ñ‚Ç‚ÌgawkƒvƒƒZƒX‚ªsleep‚©stacked‚É‚È‚Á‚Ä‚¢‚Ä
‚ ‚ñ‚Ü‚è‚à‚è‚à‚è“­‚¢‚Ä‚­‚ê‚Ü‚¹‚ñBIO‚ª—¥‘¬‚È‚Ì‚Å‚µ‚傤‚©H
CPU‚àƒƒ‚ƒŠ‚àÅ‘åŒÀÏ‚ñ‚Å‚Ü‚·B

457 F
stacked -> stuck‚Å‚µ‚½B‚·‚¢‚Ü‚¹‚ñB

458 F
'$3!="*"'
‚±‚ê‚Á‚Ä‘‚«ŠÔˆá‚¢H

459 F
í‚ç‚ê‚éƒf[ƒ^‚Ì—á
745_17_70_F3 4 * 0 0 * * 0 0 GGAGTGCCCCACACTTGGAGGCGAGCGCCCGGCAGACTTCCCCGCCGCC &+))8'1%+%-%%'((-)%%)8+,&+*7'+/%5''%%%%%-')-/'%/( XM:i:0
Žc‚éƒf[ƒ^‚Ì—á
745_377_43_F3 0 chr1 181855450 255 48M * 0 0 CATGTATGTGGCCAAAGGAACAACGCTATGTTTCCTAAAAGGCCTAGA G`[[`a`ab`^\ZYZ[SIR\Z[L7I_L>HU^bOKSDES[PO9-HNG7= XA:i:2 MD:Z:26C21 NM:i:1 CM:i:3
‚±‚¤‚¢‚¤‚Ì‚ª80–œs‚®‚ç‚¢‚ ‚é‚悤‚Å‚·B

460 F
ƒXƒNƒŠƒvƒg‚Ì’†g‚ÍŽÀۂ͈Ⴄ‚킯‚Ë
‚½‚Ô‚ñAƒf[ƒ^‚ÌŠi”[ꊂªƒvƒƒOƒ‰ƒ€ŽÀsƒ}ƒVƒ“‚ƕʂ̃}ƒVƒ“‚Ì
ƒfƒBƒXƒN‚È‚ñ‚¶‚á‚È‚¢‚©‚ÈB
ƒlƒbƒgƒ[ƒN‚ªƒrƒW[ó‘Ô‚¾‚ÆŽv‚¤B

461 F
>454-455
‚ ‚肪‚Æ‚¤‚²‚´‚¢‚Ü‚µ‚½B
‹““®‚ð•Ï‚¦‚é‘g‚Ýž‚Ý•Ï”‚à–³‚¢‚悤‚Å‚·‚ËB

462 F
‚Æ‚è‚ ‚¦‚¸ df ƒRƒ}ƒ“ƒh‚Åì‹ÆƒfƒBƒŒƒNƒgƒŠ‚Æ /var/tmp ‚̋󂫗̈悪
Šm•Û‚³‚ê‚Ä‚¢‚邱‚Æ‚ÆAo—̓tƒ@ƒCƒ‹‚̃TƒCƒY‚âƒ^ƒCƒ€ƒXƒ^ƒ“ƒv‚ª™X‚É
XV‚³‚ê‚Ä‚¢‚邱‚Æ‚ðŠm”F‚·‚é‚­‚ç‚¢‚µ‚©‚È‚¢‚ñ‚¶‚á‚È‚¢‚©‚ÈB
ƒ[ƒJƒ‹ƒfƒBƒXƒN‚Å‚â‚ê‚΂à‚Á‚Æ‘‚¢‚ÆŽv‚¤‚¯‚ÇB

463 F
>>460
‚È‚é‚Ù‚ÇB
xgrid‚ð‚‚©‚Á‚ÄA2‘ä‚̃}ƒVƒ“‚Å10–{‚¸‚‚قǕÀs‚µ‚Ägawk‚𑖂点‚Ä‚¨‚è‚Ü‚µ‚½B
NFS‚ð‚‚©‚Á‚Ä5GB‚Ù‚Ç‚Ìiæ‚Ù‚Ç‚Í20GB‚Æ‘‚«‚Ü‚µ‚½‚ªŠÔˆá‚¢‚Å‚·jin.txt‚Ì
‚̃f[ƒ^‚ð“Ç‚Ýž‚ñ‚ÅAˆ—Œã‚̃f[ƒ^‚ðout.txt‚É‘‚«o‚µ‚Ä‚¢‚é‚Ì‚ÅA
ƒlƒbƒgƒ[ƒNƒrƒW[‚É‚È‚Á‚Ä‚µ‚Ü‚¤‚Æ‚¢‚¤‚킯‚Å‚·‚ËB
ƒlƒbƒgƒ[ƒN‚Ì–â‘è‚Æ‚ÍBBB
ˆê‰žAƒGƒ‰[‚Å‚±‚¯‚邱‚Æ‚È‚­A‚µ‚ã‚­‚µ‚ã‚­‚ƈ—‚Íi‚Þ‚Ì‚Å‹C‚É‚µ‚È‚¢‚±‚Æ‚É‚µ‚Ü‚·B

464 F
2‘ä‚̃}ƒVƒ“‚Å20–{‚Å‚µ‚½i10+11jBBB
ˆêƒvƒƒZƒX‚ ‚½‚è5GB‚̃tƒ@ƒCƒ‹‚ð“Ç‚Ýž‚Þ‚Ì‚ÅAƒlƒbƒgƒ[ƒN‚ª”ߖ‚ðã‚°‚Ä‚¢‚é‚ÆB

465 F
¡”NAgawk‚ð‘åŠw‚ÅK‚Á‚ÄFX˜M‚Á‚Ä‚é‚ñ‚¾‚¯‚ÇAperl‚Æ‚©‚æ‚莩—R“x‚ª’á‚¢‚ÆŒ¾‚í‚ꂽB‚»‚ñ‚È‚É·‚ª‚ ‚é‚ÌH

466 F
>>465
ŠÈˆÕŒ¾Œê‚Æ‚µ‚Ä‘¨‚¦‚é‚©ƒc[ƒ‹‚Æ‚µ‚Ä‘¨‚¦‚é‚©‚̈Ⴂ‚¶‚á‚Ë`
‰´ƒp[ƒ‹‚æ‚èƒI[ƒN‚Ì•û‚ªD‚«‚¾‚¯‚ÇB

467 F
>>466
‚È‚é‚Ù‚ÇB‚Ü‚ŸA‚»‚ñ‚È‚É•¡ŽG‚È‚±‚Æ‚ð‚±‚È‚·ƒXƒLƒ‹‚ðŽ‚¿‡‚킹‚Ä‚È‚¢‚©‚ç‚à‚¤Žb‚­awk‚Å—V‚ñ‚Å‚Ý‚é‚©B

468 F
Ž©—R“x‚Æ‚¢‚¤‚æ‚è‚Í‹@”\‚ª­‚È‚¢‚¶‚á‚È‚¢‚Ì‚©H

469 F
‚±‚̃XƒŒƒbƒh‚Í“V˃`ƒ“ƒpƒ“ƒW[uƒAƒC‚¿‚á‚ñv‚ª
Œ¾ŒêŒP—û‚Ì‚½‚ß‚É—§‚Ä‚½‚à‚Ì‚Å‚·B
ƒAƒC‚ÆŒ¤‹†ˆõ‚Æ‚Ì‚â‚èŽæ‚è‚É—˜—p‚·‚éƒXƒŒƒbƒh‚È‚Ì‚ÅA
ŠÖŒWŽÒˆÈŠO‚Í‘‚«‚±‚Ü‚È‚¢‚ʼnº‚³‚¢B
@@@@@@@@@@@@@@@@@@‹ž“s‘åŠw—ì’·—ÞŒ¤‹†Š

470 F
>>467
perlƒ†[ƒU‚Í‚·‚ׂĂðperl‚¾‚¯‚Å‚â‚낤‚Æ‚·‚éBC/C++/Java‚àŽg‚¤ƒ†[ƒU‚Íawk‚Ì•û‚ðD‚ÞB
C/C++/Java‚ÉŽè‚ð‰„‚Î‚·‚‚à‚è‚È‚ç‚Þ‚µ‚ëawk‚Ì‚Ù‚¤‚ª‚¢‚¢‚æBperl‚¾‚ÆŽ©ŒÈŠ®Œ‹‚µ‚Ä‚µ‚Ü‚¤‚©‚çB

471 F
perl‚æ‚èawk‚Ì•û‚ª‘¬‚¢Ž–‚Á‚Ä‚È‚¢‚¶‚á‚ñB
¡‚Ìawk‚ÌŽg‚¢“¹‚̓ƒ“ƒ‰ƒCƒi[‚ðƒRƒ}ƒ“ƒhƒ‰ƒCƒ“‚̃pƒCƒv‚ɬ‚º‚é’ö“x‚Å‚µ‚æB
‰´‚ÍA256”{–{‚Ì’·•ÑƒXƒNƒŠƒvƒg‚ð‚¢‚­‚‚©‘‚¢‚½‚¯‚ÇA
“–Žž‚Í‚Ü‚¾perl‚È‚ñ‚ÄŽg‚í‚ê‚Ä‚È‚©‚Á‚½BŽž‘オˆá‚¤B

472 F
>>470
‚»‚ê‚Í•ÎŒ©‚¾‚ë
autoconf‚È‚Ç‚Ì”ñí‚ÉŠî–{“I‚ȃc[ƒ‹‚Å‚àPerl‚ªŽg‚í‚ê‚Ä‚¢‚邵
openssl‚̂悤‚Éconfigure‚ÌiŽå‚ÉWindows—p‚Ìjƒ|[ƒ^ƒrƒŠƒeƒB‚ðã‚°‚邽‚ß‚É
Perl‚ð—˜—p‚µ‚Ä‚¢‚é‚à‚Ì‚à‚ ‚é
Œ¾Œê‚Ì“K«‚ð‚í‚©‚Á‚½ã‚Å“KÞ“KŠ‚ÅŽg‚¦‚΂¢‚¢‚ñ‚¾‚æ

473 F
“ú–{‘ÛÜ
u•Äƒxƒ‹Œ¤‹†Š“Á•Ê–¼—_‹ZŽt‚̃fƒjƒXEƒŠƒbƒ`[”ŽŽmi‚U‚Xj‚ƕăO[ƒOƒ‹ŽÐ“Á•Ê‹ZŽt‚̃Pƒ“Eƒgƒ“ƒvƒ\ƒ“”ŽŽmi‚U‚Vjv
–ˆ“ú‚Š‚ - –ˆ“úV•·‚̃jƒ…[ƒXEî•ñƒTƒCƒg
http://mainichi.jp/select/science/news/m20110126k0000m040012000c.html

474 F
>>471
>Žž‘オˆá‚¤B
Žž‘ã‚ÆŒ¾‚¤ˆÓ–¡‚Å‚ÍAŋ߂̓fƒtƒH‚Å Python ‚ª“ü‚Á‚Ä‚¢‚½‚è‚·‚é‚Ì‚Å
Perl ‚ðŽg‚¤‚È‚ç Python ‚ð‘I‚ñ‚¶‚Ⴄ‚ÈB
‚ ‚ñ‚܂葬‚³‚ð‹£‚¤ŽdŽ–‚ð‚µ‚Ä‚¢‚È‚¢‚Ì‚ÆAƒƒ“ƒ‰ƒCƒi[‚ð‘‚­Ž–‚ª
‘½‚¢‚Ì‚ÅAawk ‚àâŽ^‘劈–ô‚µ‚Ä‚¢‚邯‚ÇB
Perl ‚ªƒtƒ‹ƒZƒbƒg‚ÌŒ¾Œê‚È‚ç awk ‚Í DSL ‚Ý‚½‚¢‚È•¨‚ÅAŒÂl“I‚É‚Í
awk ‚Ì•û‚ª‹CˆÀ‚­‘‚¯‚é‹C‚ª‚·‚éB

475 F
python‚ÍAƒRƒ}ƒ“ƒhƒ‰ƒCƒ“‚ÅŽg‚¢‚É‚­‚¢B
-c‚ňø”‚ɈꉞƒRƒ}ƒ“ƒh“n‚¹‚邯‚ÇAƒCƒ“ƒfƒ“ƒg‚Ì–â‘肪‚ ‚邵A
perl‚Ì-p‚â-n‚Ý‚½‚¢‚É•W€“ü—͂̃‹[ƒv“n‚¹‚È‚¢‚©‚çB

476 F
Ž¿–₳‚¹‚ĉº‚³‚¢
ŽŸ‚̂悤‚ȃeƒLƒXƒg‚ª‚ ‚é‚Æ‚µ‚Ü‚·
aaaaa 10 20 10 5
aaabb 5 10 10 10
aaabb 5 5 5 5
aabaa 5 20 20 30
aabbb 10 10 5 5
bbaaa 10 10 10 10
bbbaa 5 10 10 5
bbbbb 10 5 5 30
‚±‚±‚ÅAaaaaa‚È‚Ç‚ÍŒÂl‚Ì–¼‘O‚Å‚©‚ÂA3•¶Žš–Ú‚Ü‚Å‚ª©A4`5•¶Žš–Ú‚ª–¼‘OA‚Ü‚½”Žš‚ªo”‚Æ‚µ‚Ä
Še¢‘Ñ‚Ìo”ï‚ðo—Í‚µ‚½‚¢‚Æl‚¦‚Ä‚¢‚Ü‚·B
aaa 20 35 25 20
aab 15 30 25 35
bba 10 10 10 10
bbb 15 15 15 35
‚Æ‚È‚Á‚Ä—~‚µ‚¢–ó‚Å‚·B

477 F
‚Å¡l‚¦‚Ä‚¢‚é•û–@‚Æ‚µ‚Ä‚Í
substr($1,1,3) ‚Å©‚𔻒肵‚Ä
“¯‚¶©‚È‚çA¢‘Ñ‚ð‰ÁŽZ‚µ‚Äs‚­
ˆá‚¤©‚É‚È‚Á‚½ƒ^ƒCƒ~ƒ“ƒO‚Å1‚‘O‚̉Ƃ̉ƌv‚ð@print@‚µ‚Ä
‚³‚ç‚ÉŠeo”ï‚ð‰Šú‰»‚·‚é
ŽŸ‚Ìs‚ɈڂÁ‚Ä“¯‚¶¢‘Ñ‚È‚ç‰ÁŽZ
‚Æ‚¢‚¤Š´‚¶‚ŃXƒNƒŠƒvƒg‚ð‘g‚Ý‚½‚¢‚ñ‚Å‚·‚ªª–{“I‚È‚Æ‚±‚ë‚Å‚â‚è•û‚ª•s–¡‚¢‚Å‚µ‚傤‚©H

478 F
˜A‘z”z—ñ‚Æ‚©‚¶‚á‘Ê–Ú‚È‚Ì‚©H
name[$1] += 1

479 F
>>476-477
‘S‚ĘA‘z”z—ñ‚É—­‚ßž‚ñ‚ÅA ÅŒã‚ňê‹C‚Éo—Í‚µ‚½•û‚ª—Ç‚­‚È‚¢‚©?
>>477 ‚Ì•û–@‚¾‚ÆA o—Í‚ðs‚¤‰ÓŠ‚ª
"©‚ª•Ï‚í‚Á‚½‚Æ‚«" ‚Æ "ƒeƒLƒXƒg‚ªI‚í‚Á‚½‚Æ‚«" ‚É•ªŽU‚µ‚Ä‚µ‚Ü‚¤B
{
    a = substr($1,1,3);
    b[a] += $2;
    c[a] += $3;
    d[a] += $4;
    e[a] += $5;
}
END {
    for (f in e) print f,b[f],c[f],d[f],e[f];
}

480 F
>>474
OS(Linux)‚ðƒfƒtƒH‚¾‚¯‚ÅŽg‚¤‚±‚Æ‚Í‚Ü‚¸‚ ‚肦‚È‚­‚ÄA
‰½‚©‚µ‚ç’ljÁƒpƒbƒP[ƒW‚ª•K—v‚É‚È‚é‚Í‚¸‚¾‚©‚çA
Python‚ªƒfƒtƒH‚Å“ü‚Á‚Ä‚¢‚鎖‚ÍŽÀ—p–Ê‚Å•]‰¿‘ÎÛ‚É‚Í‚È‚ç‚ñ‚ÆŽv‚¤B
Ž©•ª‚ÍDebian‚ðƒƒCƒ“‚ÉŽg‚¤‚¯‚ÇAƒCƒ“ƒXƒg[ƒ‹Žž‚ɂ̓x[ƒXƒVƒXƒeƒ€‚¾‚¯‚ð‘I‚ÑA
‚»‚ê‚Ésshd‚Æruby‚ð’ljÁ‚·‚é‚Ì‚ªƒfƒtƒH‚È‚ñ‚Å‹C‚É‚È‚ç‚È‚¢B
Mac‚È‚çPython/Ruby‚Æ‚àƒfƒtƒH‚Å“ü‚Á‚Ä‚é‚©‚ç–³–â‘肾‚µA
Win‚È‚ç‚Ç‚¿‚ç‚àƒfƒtƒH‚¶‚á“ü‚Á‚Ä‚¢‚È‚¢‚©‚瓯‚¶B
‚Ü‚½“úí“I‚ȃvƒƒOƒ‰ƒ~ƒ“ƒO‚ÉŠÖ‚µ‚ÄARuby‚Ìꇂ͈ȉº‚̂悤‚ɃŠƒXƒg\‘¢‚ð
ƒVƒFƒ‹‚̃pƒCƒvƒ‰ƒCƒ“Š´Šo‚Å‘‚¯‚é‚Ì‚ªŠð‚µ‚¢B
@hoge_list.select { |x| ....}.sort { |x,y| .... }.map { |x| .... }.inject(n) {|x, i| .... }
ƒuƒƒbƒN(ƒNƒ[ƒWƒƒ)‚Ì–³‚¢Pyton/Perl‚Å‚ÍA‚±‚¤‚¢‚Á‚½‚¨‹CŒy‚È‘‚«•û‚Í‚Å‚«‚È‚¢B
‚¾‚©‚ç“úí“I‚ÈŠˆ–ô“x‚Å”äŠr‚·‚é‚ÆAŽ©•ª‚ÌꇂÍAbash > awk > ruby ‚É‚È‚éB
Šî–{‚Íbash‚ÅA–Ê“|‚È•¶Žš—ñˆ—‚ª‚ ‚ê‚Îawk‚ðƒƒ“ƒ‰ƒCƒi[‚Å–„‚ßž‚Þ‚Ì‚ªƒpƒ^[ƒ“B
‚ÅAFX‚Æ‹@”\‚ð’ljÁ‚µ‚Ä‚«‚ÄbashƒvƒƒOƒ‰ƒ~ƒ“ƒO‚ªd‰×‚ÉŠ´‚¶‚ç‚ê‚é‚悤‚É‚È‚èA
‚È‚¨‚©‚”ėp«‚Ì‚ ‚é(Ä—˜—p‚̉”\«‚ª‚ ‚é)ƒc[ƒ‹‚Å‚ ‚ê‚ÎAˆê‹C‚Éruby‚É‘‚«Š·‚¦‚éB
Python‚Í–{Ši“I‚ÈŠJ”­‚Å‚ ‚ê‚Î(Ruby‚æ‚è‚à)—D‚ꂽ–Ê‚ª‘½X‚ ‚é‚ÆŽv‚¤‚¯‚ÇA
(>>475‚ÌŽw“E‚àŠÜ‚ß‚Ä)‚¨ŽèŒy‚³/‚¨‹CŒy‚³‚ÉŒÀ‚é‚Æ(Ruby‚æ‚è‚à)Žg‚¢‚Â炭Š´‚¶‚éB
‚à‚¿‚ë‚ñbashƒXƒNƒŠƒvƒg(or Makefile)‚É–„‚ßž‚Þƒƒ“ƒ‰ƒCƒi[‚Å‚ ‚ê‚ÎAawk ‚ªƒxƒXƒgB

481 F
>>474‚Æ‘S‚­“¯‚¶ˆÓŒ©‚¾‚íB
‹Æ–±‚ÅŽg‚¤Ž–‚ª‘½‚¢RHEL‚Í—]Œv‚È•¨‚Í‚Ù‚Æ‚ñ‚Ç“ü‚ê‚Ä‚È‚¢B
PythonAPerl‚ªƒfƒtƒH‚Å“ü‚Á‚Ă銴‚¶B
ÌAUNIX‚ðˆµ‚Á‚Ä‚½ ‚ÍPerl‚È‚çƒfƒtƒH‚Å“ü‚Á‚Ä‚½‚Ì‚ÅAŠo‚¦‚悤‚Æ‚µ‚½‚¯‚ÇŒ‹‹Çg‚ɂ‚©‚¸B
shAsedAawk‚Å‚ª‚ñ‚΂Á‚Ä‚½B

482 F
>>480
ƒfƒtƒH‚Å“ü‚Á‚Ä‚¢‚é‚Ì‚ªŠð‚µ‚¢‚Ì‚ÍAŽ©•ª‚̊‹«‚¾‚¯‚Å‚È‚­A‘¼l‚̊‹«‚Å‚à
Žg‚¦‚鎖‚ª•ÛØ‚³‚ê‚Ä‚¢‚鎖‚¾‚æB’N‚©‚ÉŽg‚Á‚Ä‚à‚炤ˆ×‚̃R[ƒh‚ð‘‚­Žž‚ÉA
ƒpƒbƒP[ƒW‚̒ljÁ‚ð‚¨Šè‚¢‚µ‚È‚­‚Ä—Ç‚¢‚Ì‚Í‚Æ‚Ä‚àŠyB“Á‚ÉA‚»‚ꂪŽdŽ–‚Å
Žg‚í‚ê‚Ä‚¢‚éŠÂ‹«‚È‚ç®XB
ƒTƒ|[ƒg‚âƒgƒŒ[ƒjƒ“ƒO‚ÌŽdŽ–‚ð‚µ‚½Ž–‚ª‚ ‚él‚È‚ç—‰ð‚µ‚Ä‚à‚炦‚é‚ÆŽv‚¤B

483 F
AWK‚ÍANEC PC-9801‚ÌMS-DOS‚Å‚à‚¤‚²‚¢‚½BAWK95.exe‚ÍA“ú–{Œê‚ɑΉž‚µ‚Ä‚È‚¢

484 F
AWK‚ÌŠˆ–ô‚·‚éê–Ê‚ÍA‚â‚Á‚Ï‚èƒeƒLƒXƒgˆ—‚¾‚ÆŽv‚¤B
‚»‚Ì‚¿‚å‚Á‚Æ•¡ŽG”Å‚Æ‚µ‚ÄŽg‚¤‚È‚çPerl‚©‚ÈB
‘g‚Ýž‚݃‰ƒCƒuƒ‰ƒŠ‚ªƒeƒLƒXƒgˆ—‚É“Á‰»‚µ‚Ä‚é‚©‚çB
Python‚ͳ‹K•\Œ»‚ªŒ¾Œê‚É‘g‚Ýž‚Ü‚ê‚Ä‚È‚©‚Á‚½‚è‚Æ
ƒeƒLƒXƒgˆ—‚͎኱‚â‚è‚É‚­‚¢ˆóÛ‚ª‹­‚¢B
‚»‚Ì•ªAƒeƒLƒXƒgˆ—ˆÈŠO‚Ȃ猋\Žg‚¤‚¯‚Ç‚ËB

485 F
>>482
‚ ‚ A‚»‚ꕪ‚©‚é‚íB‹Æ–±ƒ}ƒVƒ“‚Æ‚µ‚ÄŽg‚¤¤—pUNIX(HP-UX/Solaris/AIX)‚¾‚Æ
Ruby‚Ç‚±‚ë‚©Python/Perl‚·‚çƒfƒtƒH‚¶‚á“ü‚Á‚Ä‚¢‚È‚¢‚µA‚»‚¤‚¢‚Á‚½
ƒtƒŠ[ƒ\ƒtƒg‚Ì—Þ‚¢‚ÍŒ´‘¥‚Æ‚µ‚Ĉê؃Cƒ“ƒXƒg[ƒ‹‹ÖŽ~‚Æ‚¢‚¤ŠÂ‹«‚à‚ ‚éB
(Web/Mail‚Æ‚¢‚Á‚½InternetŒnƒT[ƒo‚Í•Ê‚ËB‚ ‚­‚Ü‚Å‹Æ–±ƒ}ƒVƒ“ŒÀ’è‚̘bB)
‚¾‚©‚礗pUNIXƒ†[ƒU‚ÍAƒfƒtƒH‚Å“ü‚Á‚Ä‚¢‚éƒc[ƒ‹‚É’·‚¯‚邱‚Æ‚É‚È‚éB
‚â‚Á‚Ï‚è–{•¨‚ÌUNIXƒvƒ‚ðŽ©Ì‚·‚é‚Ì‚È‚çApython/ruby‚Å‚Í‚È‚­sh/awk‚¾‚µA
emacs/vim‚Å‚Í‚È‚­viAlatex‚Å‚Í‚È‚­roff‚ð‘I‚Ԃׂ«‚¾‚æ‚ËB

486 F
>>484
>Python‚ͳ‹K•\Œ»‚ªŒ¾Œê‚É‘g‚Ýž‚Ü‚ê‚Ä‚È‚©‚Á‚½‚è‚Æ
‚ÖH

487 F
>>486
‚ñHŒ¾Œê‚É‚Í‘g‚Ýž‚Ü‚ê‚Ä‚È‚¢‚¾‚ëHƒ‰ƒCƒuƒ‰ƒŠ‚Æ‚µ‚Ä‘g‚Ýž‚Ü‚ê‚Ă邾‚¯‚ÅB
‚¾‚©‚糋K•\Œ»ƒŠƒeƒ‰ƒ‹‚Æ‚©–³‚¢‚µAimport‚È‚µ‚É‚ÍŽg‚¦‚È‚¢B

488 F
ƒŠƒeƒ‰ƒ‹‚¾‚Ɖ½‚©—Ç‚¢‚±‚Æ‚ ‚é‚ÌH

489 F
•¶Žš—ñ‚©ƒpƒ^[ƒ“‚©‹æ•Ê‚µ‚â‚·‚¢B

490 F
‚ ‚ÆAƒ}ƒbƒ`ƒ“ƒO‚Ì•\‹L‚ªŽ©‘RB

491 F
>>485
Solaris ‚̓fƒtƒH‚Å Perl ‚à Python ‚à“ü‚Á‚Ä‚é‚æ
‚à‚¿‚ë‚ñ“ü‚ê‚È‚¢Ž–‚ào—ˆ‚邯‚Ç

492 F
>>491
‚»‚ê‚͊ȈՃCƒ“ƒXƒg[ƒ‹‚Å—p“r‚Æ‚µ‚ăfƒXƒNƒgƒbƒv‚ ‚é‚¢‚̓Cƒ“ƒ^[ƒlƒbƒgƒT[ƒo‚ð
‘I‘ð‚µ‚½ê‡‚̘b‚¶‚á‚È‚¢‚Ì‚©‚ÈBŠî–{ƒVƒXƒeƒ€‚Éperl/python‚ÍŠÜ‚Ü‚ê‚Ä‚¢‚È‚¢‚Í‚¸B
‚»‚̊ȈՃCƒ“ƒXƒg[ƒ‹‚àŠÜ‚߂ăfƒtƒH‚Å‚ ‚é‚Æ‚·‚é‚È‚çADebian‚à“¯‚¶B
ƒJƒeƒSƒŠ‚ŃfƒXƒNƒgƒbƒv‚ð‘I‚ׂÎuruby‚àƒfƒtƒHv‚ŃCƒ“ƒXƒg[ƒ‹‚³‚ê‚éB(RHL‚Í’m‚ç‚ñ)
Ž©•ª‚Í—]Œv‚È•¨‚Í“ü‚ꂽ‚­‚È‚¢‚©‚çŠî–{ƒVƒXƒeƒ€‚ð‘I‚ñ‚ł邯‚Ç‚ËB
‚‰Â—p«‚ð—v‹‚³‚ê‚éŠîŠ²‹Æ–±ƒVƒXƒeƒ€‚Ìê‡AŽ©•ª‚ÍHP-UX‚ðˆµ‚¤ƒP[ƒX‚ª‘½‚¢‚¯‚ÇA
ƒfƒtƒH‚Å‚ÍŠî–{ƒVƒXƒeƒ€‚ð‘I‚ÑŽ–‘O‚ÉÝŒv‚µ‚½ƒpƒbƒP[ƒW‚Ì‚Ý‚ð’ljÁ‚·‚é‚Ì‚ª“S‘¥B
‚È‚º‚È‚çƒ[ƒJ‚̃Tƒ|[ƒg‚ªŽó‚¯‚ç‚ê‚È‚¢A‚ ‚é‚¢‚Í‚ ‚©‚炳‚Ü‚ÉŒ™‚ÈŠç‚ð‚³‚ê‚é‚©‚çB
‚»‚ñ‚Ȋ‹«‚¾‚ÆAu^‚ɃfƒtƒHv‚Èsh/csh/sed/awk‚ª‘劈–ô‚µ‚Ä‚¢‚½‚è‚·‚éB

493 F
>>492
Solaris ‚̃fƒtƒHƒ‹ƒg‚Í "Entire Distribution" ‚Æ‚¢‚¤ƒpƒbƒP[ƒW‚̃Zƒbƒg‚¾‚æB
ƒCƒ“ƒXƒg[ƒ‰[‚ŃfƒtƒHƒ‹ƒg‚Å‘I‘ð‚³‚ê‚Ä‚¢‚é‚Ì‚ª‚±‚ꂾ‚µAƒvƒŠƒCƒ“ƒXƒg[ƒ‹
‚³‚ê‚Ä‚¢‚é‚Ì‚à‚±‚ê‚É‹ß‚¢‚à‚ÌB‚»‚±‚É‚Í Perl ‚à Python ‚à“ü‚Á‚Ä‚éB
ƒCƒ“ƒXƒg[ƒ‹‚·‚éÛ‚Ì‘I‘ðŽˆ‚Å "Core System" ‚ð‘I‚ׂΠPerl ‚â Python ‚Í
“ü‚ç‚È‚©‚Á‚½‚ÆŽv‚¤‚¯‚ÇA‚±‚ê‚ðƒfƒtƒHƒ‹ƒg‚ƌĂԂ̂͂¿‚å‚Á‚Æ–³—‚ª‚ ‚é‚ÆŽv‚¤‚íB
‚»‚ê‚ÆAŠÈˆÕƒCƒ“ƒXƒg[ƒ‹‚Æ‚©ƒJƒeƒSƒŠ‚ŃfƒXƒNƒgƒbƒv‚Æ‚©^‚ɃfƒtƒH‚ÆŒ¾‚Á‚½•¨‚Í
Solaris ‚É‚Í‘¶Ý‚µ‚È‚¢BDebian ‚Í’m‚ç‚ñB

494 F
Solaris2.6‚ ‚½‚è‚̃fƒtƒH‚ÅPerl‚Í“ü‚Á‚Ä‚½‹L‰¯‚ª‚ ‚éB
15”N‚­‚ç‚¢‘O‚ÌHP-UX‚¾‚ÆPerl‚ª“ü‚Á‚Ä‚È‚©‚Á‚½‹L‰¯‚ªB

495 F
‰´‚àHP-UXƒƒCƒ“‚¾‚¯‚ÇPerl“ü‚Á‚Ä‚È‚¢‚í

496 F
Šm‚©‚ÉASolaris‚ÉŠµ‚ê‚Ä‚¢‚ÄHP-UXŽg‚킳‚ê‚é‚ÆŽg‚¢‚É‚­‚¢‚í[

497 F
‚ÆŒ¾‚¤‚킯‚ÅAUN*XƒT[ƒoŠÇ—ŽÒ‚ÌꇂÍawk‚ðŽg‚¦‚é‚悤‚É‚È‚Á‚Ä‚¨‚¯‚ΊԈႢ‚ ‚è‚Ü‚¹‚ñ‚ËB

498 F
ŠÂ‹«‚ð‘I‚΂Ȃ¢ƒT[ƒoŠÇ—‚¾‚Á‚½‚çAsh,grep,sed,tr,cut,paste,sort,uniq‚ ‚½‚è‚ÅB
nawk‚Ægawk‚ÌŽd—l·‚ªŒ‹\‚ ‚é‚Ì‚ÅAawk‚ÍŽg‚¢‚É‚­‚¢B

499 F
‚±‚¤‚¢‚¤˜b‘è‚ÌŽž‚ÉSolaris‚Æ‚©HP-UX‚Ío‚é‚Ì‚ÉAIX‚Ío‚È‚¢ƒCƒ[ƒW

500 F
“ú–{’jŽ™‚È‚çHI-UXA“Á‚ÉHI-UX/WE2‚¾‚ëB펯‚â‚Ë

501 F
‚¤‚Þ

502 F
‚¢‚₱‚±‚ÍedƒXƒNƒŠƒvƒg‚Å

503 F
Solaris‚ÍA/usr/bin/awk /usr/bin/nawk /usr/xpg4/bin/awk
3‚•ÊX‚È‚Ì‚ª“ü‚Á‚Ä‚½‹C‚ª‚·‚é‚ÈB
‚ÅAˆê”Ô‚Ü‚Æ‚à‚È‚Ì‚ª3”Ô–Ú‚È‚Ì‚ÅA‚æ‚»‚©‚玂Á‚Ä‚«‚½ƒXƒNƒŠƒvƒg‚ÍA擪‚Ì#!‚ð
‘‚«Š·‚¦‚È‚¢‚Æ‚¢‚¯‚È‚¢‚Æ‚¢‚¤AƒJƒIƒX‚Èó‘Ô‚¶‚á‚È‚©‚Á‚½‚¾‚낤‚©B

504 F
>>503
Ž©•ªƒAƒJƒEƒ“ƒg‚̃pƒX‚Í^‚Áæ‚É /usr/xpg4/bin/‚ðŽ‚Á‚Ä‚«‚Ä‚½‚íB

505 F
ƒXƒNƒŠƒvƒg‚ð‘g‚ÞŽž‚Í‚¾‚¢‚½‚¢ nawk ‚ðŽg‚¤
‘¼l‚̃XƒNƒŠƒvƒg‚ðŠÛƒpƒNƒŠ‚·‚é‹@‰ï‚ª–³‚¢‚̂ŃJƒIƒX‚ÍŠ´‚¶‚½Ž–‚ª–³‚¢

506 F
>>505
˜b‚Ì—¬‚ꂪ>>497 >>498‚È‚Ì‚ÅA‰Â”À«‚ª–â‘è‚È‚ñ‚¾‚æB

507 F
ƒEƒ`‚Í RHEL ‚Æ Solaris ‚¾‚¯l‚¦‚ê‚Ηǂ¢‚©‚çAawk ‚Å–â‘肪‚ ‚鎞‚Í Perl ‚© Python ‚ÅÏ‚Ü‚·‚í

508 F
#!/usr/bin/env [gn]*awk
‚¾‚ëíl

509 F
shebangs‚É /usr/bin/env ‘‚­‚Ì‚Á‚Ä‚ ‚ñ‚Ü—Ç‚¢‚ÆŽv‚¦‚È‚¢‚ñ‚¾‚æ‚È‚ 
•¡”‚̈ø”‚̈µ‚¢‚Æ‚©AŠÂ‹«•Ï”‚ð‚»‚±‚Ü‚ÅM—p‚µ‚Ä—Ç‚¢‚à‚Ì‚È‚Ì‚©‚Æ‚©
‚ ‚Æ /usr/bin/ ‚É env ‚ª‚ ‚邱‚Æ‚Í–{“–‚É•ÛØ‚Å‚«‚é‚Ì‚©‚Æ‚©
/bin/sh ‚ð‘‚¢‚½‚Ù‚¤‚ª—Ç‚¢‚ñ‚¶‚á‚È‚¢‚©‚Á‚ÄŽv‚Á‚Ä‚µ‚Ü‚¤

510 F
‚±‚̘b‘è‚à’è”Ô‚¾‚ÈB‘OƒXƒŒ‚Ì558-564‚Å‚à‚â‚Á‚Ä‚½‚¼B‚Æ‚è‚ ‚¦‚¸Œ‹˜_‚¾‚¯‚ðˆø—p‚µ‚Æ‚­‚íB
>’²‚ׂĂ݂½‚ç#!‚ɃCƒ“ƒ^[ƒvƒŠƒ^‚̈ø”‚ð2‚ˆÈã—^‚¦‚½‚Æ‚«‚Ì
>‹““®‚ÍOS‚É‚æ‚Á‚ĈႤ‚悤‚¾‚Á‚½B
>
>FreeBSD4.2: 2‚ˆÈã‚ ‚Á‚Ä‚à“n‚é(/usrbin/env gawk -f foo)
>Linux(2.6.8): ‹ó”’‚ðŠÜ‚ß‚Ä1‚‚̈ø”‚Æ‚µ‚Ä“n‚é(/usr/bin/env "gawk -f" foo)
>Soraris(5.8): 2‚‚߈È~‚̈ø”‚Í–³Ž‹(/usr/bin/env gawk foo)
>
>Œ‹‹Ç/usr/bin/envŽg‚Á‚½‘‚«•û‚Ígawk‚̃Cƒ“ƒXƒg[ƒ‹ˆÊ’u‚Ì·‚ð
>‹zŽû‚µ‚悤‚Æ‚µ‚Ä‚é‚ñ‚¾‚낤‚ªA“®ì‚ÍOS‚É‚æ‚Á‚Ä‚Ä‚ñ‚ł΂ç‚΂ç
>‚È‚Ì‚Å‚ ‚܂肨Š©‚ß‚Å‚«‚È‚¢‚Æ‚¢‚¤‚±‚Æ‚¾‚낤‚©B

511 F
ruby ŠEŒG‚Å‚à—¬s‚Á‚Ä‚é‚È
ˆÓ–¡‚à”»‚炸u‚¨‚Ü‚¶‚È‚¢v‚ÆÌ‚µ‚ÄŽg‚Á‚Ă邤‚¿‚É
“sŽs“`à‰»‚µ‚Ä‚¢‚­‚ñ‚¾‚È

512 F
‚È‚º gawk ‚É‚Í tr ‚ª–³‚¢‚Ì‚¾
tr("‚`-‚y","A-Z")‚Æ‚©‚µ‚½‚¢‚¼

513 F
‚Â Python

514 F
>>512
BEGIN {
hankaku="0 1 2 3 4 5 6 7 8 9 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z "
zenkaku="‚O‚P‚Q‚R‚S‚T‚U‚V‚W‚X‚`‚a‚b‚c‚d‚e‚f‚g‚h‚i‚j‚k‚l‚m‚n‚o‚p‚q‚r‚s‚t‚u‚v‚w‚x‚y‚‚‚‚ƒ‚„‚…‚†‚‡‚ˆ‚‰‚Š‚‹‚Œ‚‚Ž‚‚‚‘‚’‚“‚”‚•‚–‚—‚˜‚™‚š"
}
{
for (i=0; i<length(hankaku); i+=2) {
gsub(substr(hankaku,i+1,1),substr(zenkaku,i+1,2))
}
}

515 F
‚»‚ꂾ‚Ætr('ab', 'ba')‚ª‚¤‚Ü‚­‚¢‚©‚È‚¢‚ñ‚¾‚æ‚È‚ŸB

516 F
“¯‚¶Ž–‚¶‚á‚ñ

517 F
”Ä—p“I‚É‚P‚Âì‚Á‚Æ‚¯‚΂¢‚¢‚¶‚á‚ñ

518 F
>514‚Ý‚½‚¢‚ȃxƒ^‘Å‚¿‚¶‚á‚È‚­‚Ä
A-Z‚ -‚ñ
‚±‚¤‚¢‚¤•\‹L‚Å’uŠ·‚·‚é•û–@‚ ‚éH

519 F
>>518
tr Žg‚¦‚ÎH

520 F
tr ƒRƒ}ƒ“ƒh‚Á‚Ċ‹«‚É‚æ‚Á‚ă}ƒ‹ƒ`ƒoƒCƒg‚̈µ‚¢‚ªˆá‚í‚ËHƒEƒ`‚Ìê‡
Ubuntu10.04‚É“ü‚Á‚Ä‚étr(GNU coreutils)7.4‚Í‚Ç‚¤‚â‚ç2•¶Žšˆµ‚¢‚É‚µ‚¿‚Ⴄ‚炵‚¢‚ª
MacOSX10.5‚É“ü‚Á‚Ä‚étriƒo[ƒWƒ‡ƒ“”»‚ç‚ñ‚ªmanŒ©‚é‚ÆBSDŒn‚Û‚¢j‚Í1•¶Žšˆµ‚¢‚É‚µ‚Ä‚­‚ꂽ

521 F
UNICODE = •¶Žš”
mbcs = ƒoƒCƒg”

522 F
‚ñ[‚ÆA‚ǂ䂱‚ÆH
gnome-terminal‚̓†ƒjƒR[ƒhÝ’è‚Ì‚Í‚¸‚È‚ñ‚¾‚ªc
‘¼‚É‚â‚ç‚È‚«‚á‚¢‚¯‚È‚¢‚±‚Æ‚ª‚ ‚é‚Á‚Ä‚±‚ÆH

523 F
awk++Žg‚Á‚Ä‚él‚¢‚éH
http://awk.info/?doc/dsl/awkplusplus.html

524 F
Å‹ßAawk‚Ì‘¶Ý‚ð’m‚è‚Ü‚µ‚½B
‚¢‚ë‚ñ‚ÈŒ¾Œê‚ðG‚Á‚Ä‚ÍÁÜEEEG‚Á‚Ä‚ÍÁÜEEE‚ðŒJ‚è•Ô‚µ‚Ä‚¢‚Ü‚µ‚½B
awk‚͉½‚Æ‚È‚­ƒ}ƒXƒ^[o—ˆ‚»‚¤‚È‹C‚ª‚µ‚Ü‚·B
‚±‚ê‚©‚çŠæ’£‚è‚Ü‚·II
‚Q‚T‚U”{‚Ì–{‚ð¡‚Í“Ç‚ñ‚Å‚¨‚è‚Ü‚·B

525 F
gawk‚ŃtƒB[ƒ‹ƒh‚ðƒ\[ƒg‚µ‚Ä•\Ž¦‚µ‚½‚¢‚ñ‚¾‚ª
{split($0, a);asort(a);for(i=1;i<NF;i++){printf("%s%s", a[i], FS);}printf("%s\n", a[NF]);}
‚æ‚è‚àƒXƒ}[ƒg‚È•û–@‚ ‚éH
$1`$NF‚ª“ü‚Á‚½“ÁŽê”z—ñ‚Ý‚½‚¢‚È‚Ì‚ª‚ ‚Á‚½‚炤‚ꂵ‚¢‚Ì‚¾‚ªB

526 F
>>525
$i‚Æ‚©‘‚¯‚邵‘ã“ü‚à‚Å‚«‚é‚©‚ç
$1`‚ð•Û‘¶‚µ‚È‚­‚Ä‚¢‚¢‚Ì‚È‚çAŒã”¼‚Í
for(i=1;i<=NF;i++){$i=a[i]} print
‚Æ‘‚¯‚΂¿‚å‚Á‚Æ’Z‚­‚È‚é‚ÈB

527 F
>>526
‚È‚é‚Ù‚ÇA‚»‚¤‚Å‚«‚é‚Ì‚©B‚ ‚肪‚Æ‚¤B

528 F
http://www.kt.rim.or.jp/~kbk/gawk-3.1/ ‚É’u‚¢‚Ä‚ ‚Á‚½
win32—pgawk‚ª‚¢‚‚̊Ԃɂ©ŒöŠJ’âŽ~‚É‚È‚Á‚Ä‚¢‚½B
wn32‚Ìgensub‚ªŽg‚¦‚Ä“ú–{Œê‚ªˆµ‚¦‚ÄA
‚©‚Âexe‚݂̂ʼnғ®‚·‚é‚̂ŃCƒ“ƒXƒg[ƒ‹•s—v‚È‚Ì‚ª•Ö—˜‚Å
ŒöŽ„‚ɂ킽‚Á‚Ĉ¤—p‚µ‚Ä‚¢‚½‚Ì‚ÅA”ñí‚ɔ߂µ‚¢¥¥¥

529 F
http://www.vector.co.jp/soft/win95/util/se376460.html
ª‚Ƃ͈Ⴄ‚ÌH

530 F
‚»‚ê‚Í­‚µŒÃ‚¢.
gawk-mbcs-win32-20090920.zip ‚ªŽèŒ³‚É‚ ‚é‚Ì‚Å•K—v‚È‚çÄ”z•z‚·‚邪?

531 F
>>530
‚à‚µŽ„‚ÉŒ¾‚Á‚Ä‚­‚ê‚Ä‚¢‚é‚Ì‚Å‚ ‚ê‚ÎA
exe‚Ì‚Ý‚¾‚¯‚Ç2009/11/24”Å‚ªŽèŒ³‚É‚ ‚é‚Ì‚ÅA
‚±‚ê‚ðŽg‚¢‘±‚¯‚悤‚ÆŽv‚¤B‚ ‚肪‚Æ‚¤B

532 F
‰´‚̎茳‚ÉAgawk-mbcs-win32-20091124.zip ‚ª‚ ‚Á‚½B
—~‚µ‚¢l‚ª‚¢‚ÄA‚©‚ÂÄ”z•z‚É–â‘è–³‚¢‚Æ‚¢‚¤Ž–‚ª‚í‚©‚ê‚΂ǂÁ‚©‚É‚¤‚‚·‚邪B
‚µ‚©‚µ‚È‚ñ‚Å”z•z‚â‚ß‚¿‚á‚Á‚½‚ñ‚¾‚ë‚ËB
‚Ç‚±‚©‚ç‚©”qŽØ‚µ‚½ƒR[ƒh‚Æ‚©‚̃‰ƒCƒZƒ“ƒX–â‘è‚È‚Ì‚©‚ÈH

533 F
AWK++‚É‚æ‚éƒIƒuƒWƒFƒNƒgŽwŒü“ü–å
http://ja.wikibooks.org/wiki/AWK%2B%2B%E3%81%AB%E3%82%88%E3%82%8B%E3%82%AA%E3%83%96%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E6%8C%87%E5%90%91%E5%85%A5%E9%96%80
awk++‚Í–Ê”’‚»‚¤‚¾‚¯‚ÇAŒ»ŽÀ‚É‚Íawk‚ÅOO‚ð‚â‚él‚Í‚Ù‚Æ‚ñ‚Ç‚¢‚È‚¢‚¾‚낤B
‚»‚à‚»‚àawkŽg‚¢‚ÍOO‚ð—‰ð‚Å‚«‚È‚¢‚—îŽÒ‚ª‚Ù‚Æ‚ñ‚Ç‚¾‚µB
‚Å‚àAgawk‚ªƒfƒtƒHƒ‹ƒg‚ÅOO‚ɑΉž‚·‚ê‚Îawk‚ŃIƒuƒWƒFƒNƒgŽwŒü‚·‚él‚à‘‚¦‚é‚©‚à‚ËB

534 F
>>533
ƒfƒtƒH‚ŃCƒ“ƒXƒg[ƒ‹‚³‚ê‚éawk‚Å‚Å‚«‚é”͈͂̂±‚Æ‚µ‚©‚â‚ç‚È‚¢‚æ

535 F
“¯Š´B„ƒfƒtƒH‚Å‚Å‚«‚é”͈Í
’·‚߂̃XƒNƒŠƒvƒg‚ð‘‚¢‚½Ž–‚ª‚ ‚Á‚½‚Ì‚ÅOO‚ ‚é‚Æ•Ö—˜‚ÆŽv‚¤‚¯‚Ç
‚í‚´‚í‚´ƒCƒ“ƒXƒg[ƒ‹‚·‚é‚È‚çperlArubyApython‚ª‚ ‚邵‚È‚Ÿ

536 F
awk‚Å‘‚©‚ꂽawk++‚Á‚Ä‚È‚¢‚ÌH

537 F
gawk‚Å•½‰¼–¼EƒJƒ^ƒJƒi‚Ì•”•ª‚𔲂«o‚µ‚½‚¢‚ÆŽv‚Á‚Ä‚Ü‚·B
—Ⴆ‚Îuawk‚ɂ‚¢‚ÄŒê‚éƒXƒŒv‚¾‚Á‚½‚ç
"‚ɂ‚¢‚Ä" "‚éƒXƒŒ" ‚ð•Ï”‚É“ü‚ꂽ‚¢‚Ì‚Å‚·‚ªA‚¢‚¢•û–@‚ ‚è‚Ü‚·‚Å‚µ‚傤‚©H

538 F
u‚ɂ‚¢‚Äv‚Æu‚éƒXƒŒv‚Í‚»‚ꂼ‚ê•Ê‚Ì•Ï”‚É“ü‚ꂽ‚¢‚ÆŽv‚Á‚Ä‚¢‚Ü‚·

539 F
ƒAƒ‹ƒtƒ@ƒxƒbƒgˆÈŠO‚Ì•”•ª‚¾‚Á‚½‚çAƒAƒ‹ƒtƒ@ƒxƒbƒg‚ðFS‚ÉŽw’肵‚Äwhile‚ʼnñ‚¹‚΂¢‚¢‚¯‚ÇA
Š¿Žš‚à”²‚­‚͓̂‚¢‚ÈB
‚»‚ê‚ÉAŽ–ŽÀã•Ï”‚Í–³ŒÀ‚ɶ¬‚·‚é‚Á‚ÄŽ–‚©B

540 F
match‚Ì‘æ2ˆø”‚É/[‚ -‚ñƒA-ƒ“]+/‚ðŽ‚Á‚Ä‚­‚é‚Æ‚©?

541 F
$0,$1...$NF‚ð‰ó‚µ‚Ä‚à‚¢‚¢‚ñ‚¾‚Á‚½‚çAŽ„‚Ȃ炱‚¤‚µ‚Ü‚·B
gsub‚ÌŒŸõ•¶Žš“S‚ɂͳ‹K•\Œ»‚ðŽg—p‚·‚邱‚Æ‚ª‚Å‚«‚é‚©‚çA
‚Ђ炪‚ȂƃJƒ^ƒJƒiˆÈŠO‚Ì•¶Žš‚ðƒXƒy[ƒX‚É’u‚«Š·‚¦‚éB
gsub(/[^[‚Ÿ-‚ñƒ@-ƒ“]/," ")
‚Ђ炪‚ȂƃJƒ^ƒJƒiˆÈŠO‚Ì•¶Žš‚Í”¼ŠpƒXƒy[ƒX‚Q‚‚ɒu‚«Š·‚í‚éB
‚ ‚Æ‚ÍNF‚ðŒ©‚Ä•\Ž¦‚µ‚½‚¢‚悤‚Ɉ—‚·‚éB
’ˆÓ‚·‚ׂ«‚ÍAWindows”Å‚ÌV‚µ‚¢ƒo[ƒWƒ‡ƒ“‚Ì‚à‚Ì‚Å‚ÍA
³‹K•\Œ»‚Æ‚µ‚ÄA‚Ђ炪‚È‚ð ‚Ÿ-‚ñ ‚ÅAƒJƒ^ƒJƒi‚ð ƒ@-ƒ“ ‚Å
Žw’è‚Å‚«‚È‚¢‚à‚Ì‚ª‚ ‚è‚Ü‚·B
‚½‚µ‚©ƒ}ƒ‹ƒ`ƒoƒCƒgŠg’£‚ʼn󂳂ꂽB

542 F
>541
‚Ü‚¾ŽŽ‚µ‚Ä‚Ü‚¹‚ñ‚ªA—~‚·‚镶ŽšˆÈŠO‚ðÁ‚µ‚ăSƒjƒ‡ƒSƒjƒ‡‚·‚ê‚΂¢‚¯‚»‚¤‚Å‚·B
>539-540‚³‚ñ‚à‚ ‚肪‚Æ‚¤‚²‚´‚¢‚Ü‚µ‚½B

543 F
BEGIN {
str = "ƒfƒ“ƒRŠ¿Žš‚΂ñ‚´‚¢Œ³‹Cabcde‚¾‚©‚ç"
c = split(str, a, "[^[ƒ@-ƒ“‚Ÿ-‚ñ]")
for (i = c; i>=1; i--) {
if ( a[i] !~ /^$/ ) { print a[i] }
}
}

544 F
ƒ{ƒP‚©‚Ü‚µ‚½
4s–Ú‚Í•’Ê‚É
for ( i = 1; i <=c; i++) {
‚ÅOKB

545 F
c‚ðŽc‚³‚È‚­‚Æ‚à
for (i in a){if (a[i]) print a[i]}
‚ŊԂɇ‚¤‚悤‚ÈB

546 F
for-in‚¾‚Ƈ˜‚ª•ÛႳ‚ê‚È‚¢‚ñ‚¶‚á‚È‚©‚Á‚½‚Á‚¯?

547 F
for ( i = 1; i in a ; i++) ‚Á‚Ä‘‚«•û‚à‚Å‚«‚é‚æ

548 F
a1 a1 a1 a2 a2 a3
b1 b1 b1 b1
c1
d1 d2 d2
....
‚̂悤‚ÉAƒtƒB[ƒ‹ƒh”‚ªƒoƒ‰ƒoƒ‰‚ÅAƒtƒB[ƒ‹ƒh‚ªˆê’v‚·‚éê‡‚à‚ ‚ê‚Î
ˆê’v‚µ‚È‚¢ƒf[ƒ^‚ª‚ ‚é‚Ì‚Å‚·‚ªAd•¡‚ð
a1 a2 a3
b1
c1
d1 d2
‚̂悤‚É‚Ü‚Æ‚ß‚ ‚°‚é‚É‚Í‚Ç‚¤‚µ‚½‚ç‚æ‚¢‚Å‚µ‚傤‚©H
‚³‚·‚ª‚ɃOƒO‚Á‚ăRƒsƒy‚Æ‚¢‚¤–ó‚É‚à‚¢‚©‚¸BBB

549 F
>>548
‚¢‚ë‚¢‚ë‚â‚è•û‚Í‚ ‚é‚ÆŽv‚¤‚ª
awk '{j=0;delete a;for(i=1;i<=NF;i++){if(!a[$i]++){$(++j)=$i}}NF=j;print}'

550 F
‚ ‚肪‚Æ‚¤‚²‚´‚¢‚Ü‚·B
‚»‚ꂼ‚êA4‚Âd•¡ƒf[ƒ^‚Ì‚ ‚Á‚½‚à‚Ì‚Í3‚‚ÉA2‚‚̂à‚Ì‚Í1‚‚ɂƌ¸‚Á‚½‚Ì‚Å‚·‚ª
‚»‚êˆÈ㌸‚Á‚Ä‚Ü‚¹‚ñB“¯‚¶ƒRƒ}ƒ“ƒh‚ðŒJ‚è•Ô‚µ‚©‚¯‚Ä‚Ý‚½‚Ì‚Å‚·‚ªA•Ï‰»‚Í‚È‚©‚Á‚½‚Å‚·B
a1 a1 a1 a1
b1 b1 b1
...‚Ì•”•ª‚ª
a1 a1 a1
b1 b1
‚É‚Í‚È‚Á‚½‚Æ‚¢‚¤ˆÓ–¡‚Å‚·B
‚à‚¤­‚µ‚¨‚‚«‚ ‚¢‚¢‚½‚¾‚¯‚È‚¢‚Å‚µ‚傤‚©BBB

551 F
ŽèŒ³‚ł͈ê‚‚ɂȂ邯‚Ç‚È‚ŸBŒ´—‚Í‚í‚©‚邾‚낤‚©‚ç‚ ‚Æ‚Í‚ª‚ñ‚΂êB
s‚²‚ƂɃtƒB[ƒ‹ƒh‚Ì“YŽš‚ɂ‚¢‚ă‹[ƒv‚·‚é‚̂ƘA‘z”z—ñ‚ÅoŒ»ƒ`ƒFƒbƒN‚ªƒLƒ‚B
% cat hoge.txt
a1 a1 a1 a2 a2 a3
b1 b1 b1 b1
c1
d1 d2 d2
% awk '{j=0;delete a;for(i=1;i<=NF;i++){if(!a[$i]++){$(++j)=$i}}NF=j;print}' hoge.txt
a1 a2 a3
b1
c1
d1 d2

552 F
0610005C13Rik 0610005C13Rik 0610005C13Rik
0610007C21Rik 0610007C21Rik 0610007C21Rik 0610007C21Rik 0610007C21Rik
‚±‚¤‚¢‚¤Š´‚¶‚Ì•¶Žš—ñ‚È‚ñ‚Å‚·‚ª
a1‚Æ‚©b1‚ŗႦ‚Ä‚à‘åä•v‚¾‚Á‚½‚Å‚·‚©H

553 F
‹ó”’‚Å‹æØ‚ç‚ꂽ•¶Žš—ñ‚È‚ç‚È‚ñ‚Å‚à‚¢‚¢‚ªA‚»‚̃Œƒxƒ‹‚ÌŽ¿–₪
o‚é‚悤‚¶‚á‚à‚¤‚·‚±‚µŠî‘b‚ð•×‹­‚µ‚È‚¢‚Æ‚¾‚ß‚©‚à‚È‚ŸB

554 F
ƒVƒ“ƒOƒ‹ƒNƒI[ƒe[ƒVƒ‡ƒ“Žg—p‚̃Tƒ“ƒvƒ‹‚Å–â‘è‚È‚¢‚ÆŒ¾‚¤Ž–‚Í`
‚t‚m‚h‚wŠÂ‹«‚È‚Ì‚©‚È`

555 F
Mac OSX‚̃^[ƒ~ƒiƒ‹‚ðŽg‚Á‚Ä‚Ü‚·B
>>551‚Í‚»‚Ì‚Ü‚Ü‚¤‚Ü‚­“®‚«‚Ü‚µ‚½B
‚¢‚ܸ‡‚ÅŽè“®‚Åì‹Æ‚µ‚Ä‚Ü‚·‚ªA‚Ü‚¾z‚𔲂¯‚邱‚Æ‚ª‚Å‚«‚Ü‚¹‚ñB
‚à‚¤Žè‚ª‚‚肻‚¤‚Å‚·

556 F
ˆês–ì˜Y‚ð•ª‰ð‚µ‚ÄƒXƒNƒŠƒvƒg‚É‘g‚Ý’¼‚µ‚ĘM‚ê‚Γ®ìŠm”Fo—ˆ‚é‚ÆŽv‚¤

557 F
‚¢‚Üw‚Ü‚Å‚«‚Ü‚µ‚½B‚à‚¤‚¾‚ß‚Å‚·B
ˆê‰žAƒtƒ@ƒCƒ‹‚ð‚¨‚¢‚Ä‚Ý‚Ü‚·BBB
http://www5.puny.jp/uploader/download/1299482386.zip
ƒpƒX‚Í1234‚Å‚·B

558 F
‚Ü‚¾‚â‚Á‚Ä‚é‚Ì‚©`
ƒtƒ@ƒCƒ‹‚Ì@O‚l@‚ª–â‘è‚Ý‚½‚¢‚¾‚©‚ç
‚b‚q‚k‚e‚̃tƒ@ƒCƒ‹Œ`Ž®‚É•ÏŠ·‚µ‚Äã‚̈ês–ì˜Y‚Å–â‘è‚È‚¢‚Ý‚½‚¢‚¾‚Á‚½‚æB

559 F
#•¡”s‚Ì“ü—Í’†Aæ‚Ìs‚Ì11ƒJƒ‰ƒ€–Ú‚ÉOUT‚ªŠÜ‚Ü‚ê‚Ä‚¢‚é‚©‚ÂŽŸ‚Ìs‚Ì11ƒJƒ‰ƒ€–Ú‚ÉIN‚ªŠÜ‚Ü‚ê‚Ä‚¢‚é2s‚ª‘µ‚Á‚½ŽžA2s‚ðo—Í
$11~/OUT/{ prev=$0; }
$11~/IN/{
if(prev!=""){ print prev; print; }
prev="";
}

560 F
# 7.awk
NR >= 2{
if($0 ~ /^>'=+/){
if($0 ~ /~$/){
print "A";
}else{
print "NAA";
}
}else if($0 ~ /^>\^(Q=)+/){
if($0 ~ /~~$/){
print "B";
}else{
print "NAB";
}
}else{
print "NAC";
}
}
7.txt
3
>'======#======~
>^Q=Q=Q=Q=Q=Q=Q=Q=~~
>'===#====~
NAA
NBB
NAA@@@‚Æ‚È‚éB‰½‚ÅH
A
B
A@@‚Æ‚È‚Á‚Ä‚Ù‚µ‚¢‚Ì‚ÉEEEgawk 3.1.7‚Å‚·EE

561 F
‰´‚̎茳‚Ìgawk 3.1.7‚Å‚ÍŠú‘Ò’Ê‚è‚ÌŒ‹‰Ê‚É‚È‚é‚È‚ B
s––‚ª‚ç‚Ý‚¾‚ƉüsƒR[ƒh‚ªˆá‚Á‚Ä‚½‚茩‚¦‚È‚¢‹ó”’‚ª
“ü‚Á‚Ä‚½‚è‚Æ‚¢‚¤‚Ì‚ª‚æ‚­‚ ‚é‚Ì‚ÅŠm”F‚µ‚Ä‚ÝB

562 F
>>560
‚ ‚Æ
/^>'=+/
‚Á‚ăLƒƒƒvƒ`ƒƒ‚Æ‚©‚µ‚Ä‚é‚킯‚¶‚á‚È‚¢‚©‚ç+‚Í–³‘Ê‚¶‚á‚È‚¢‚©B

563 F
>>561
‚ ‚肪‚Æ‚¤‚²‚´‚¢‚Ü‚µ‚½B‰üsƒR[ƒh‚ðunixŒ`Ž®‚É‚µ‚½‚ço—ˆ‚Ü‚µ‚½B
¡Œã‚Æ‚à‚æ‚낵‚­‚¨Šè‚¢’v‚µ‚Ü‚·B

564 F
>>559
IN‚ª‚ ‚é‚Æ‚«‚É‚µ‚©prev‚ªƒNƒŠƒA‚³‚ê‚Ä‚¢‚È‚¢‚©‚çAOUT‚ªoŒ»‚µ‚½ˆÈ~‚É
•¡”s‚ªŒo‰ß‚µ‚Ä‚àIN‚ªoŒ»‚·‚é‚Æprint‚³‚ê‚éƒXƒNƒŠƒvƒg‚É‚È‚Á‚Ä‚¢‚é‚æB

565 F
http://okwave.jp/qa/q6672025.html
‚Æ‚©‚Ì“ü—Í‚ðƒCƒ[ƒW‚µ‚Ä‚½‚à‚Ì‚Å...
$11~/OUT/{ prev=$0; }
$11~/IN/{
if(prev!=""){ print prev; print; }
}
$11!~/OUT/{ prev=""; }

566 F
http://okwave.jp/qa/q6660984.html
#2—ñ–Ú‚Ì€–Ú‚ªdisk1`4‚Ü‚Å•s‘«•”•ª‚ª–„‚Ü‚é‚悤‚É‚µA•s‘«‚µ‚Ä‚¢‚½•”•ª‚Ì1—ñ–Ú‚É‚Í‘O‚ÌŽžŠÔA3—ñ–Ú‚É‚Í0‚Å–„‚ß‚½‚¢
BEGIN{ dt=prevDt="00:00:00"; }
NF>=3{ dt=$1; tgt=$2; n=$3; }
NF==2{ tgt=$1; n=$2; }
{ gapDisp(prevTgt,tgt); disp(dt,tgt,n); prevDt=dt; prevTgt=tgt; }
END{ gapDisp(tgt,"disk1"); }
function disp(dt,tgt,n){ print dt, tgt, n; }
function gapDisp(disk,endDisk, cnt)
{
for(cnt=add(getNo(disk)); cnt!=getNo(endDisk); cnt=add(cnt)) disp(prevDt, sprintf("disk%d", cnt), 0);
}
function add(cnt){ return ((++cnt>4)?(1):(cnt)); }
function getNo(disk){ sub(/disk/,"",disk); return disk; }

567 F
BEGIN { reset() }
NF == 2 { $3 = $2; $2 = $1; $1 = last_t }
{ last_t = $1 }
{ if ($2 < last_disk) { p(); reset() } last_disk = $2 }
{ n[$2] = $3 }
{ for(i in n) { if (i >= $2) { t[i] = $1 } } }
END { p() }
function p() {
for (i = 1; i <= 4; i++) {
d = "disk" i
print t[d], d, n[d]
}
}
function reset() {
for (i = 1; i <= 4; i++) {
d = "disk" i
t[d] = t["disk4"]
n[d] = 0
}
}

568 F
ŠÔˆá‚Á‚Ä‚é‚æ
‚µ‚©‚à’·‚­‚Ä”ü‚µ‚­‚È‚¢‚æ

569 F
http://okwave.jp/qa/q6711117.html
...‚±‚ñ‚ÈŠ´‚¶‚©‚Ë‚¥H@@ awk -f sum.awk ƒf[ƒ^ | sort
----- sum.awk -----
$1!~/¤“X–¼/{ tbl[$1 "," $2]+=$3; }
END{
@for(key in tbl){
@@split(key, item, /,/);
@@print item[1], item[2], tbl[key];
@}
}
-----

570 F
>>566
NF==3 {
disp();
for(i=1;i<=4;i++) {
disk_time[i]=$1
disk_val[i]=0
}
disk_val[substr($2, 5, 1)]=$3
}
NF==2 {
disk_val[substr($1, 5, 1)]=$2
}
END{
disp()
}
function disp() {
for(i=1;i<=4;i++) {
if(i in disk_time) printf("%s disk%d %s\n", disk_time[i], i, disk_val[i])
}
}

571 F
BEGIN {
    # 擪‚ª‚¢‚«‚È‚è "disk2 15" ‚Ì‚Ý‚ÅŽn‚Ü‚Á‚½‚肵‚È‚¯‚ê‚Î
    # ‚±‚̉Šú‰»‚Í•s—vB
    a = "00:00:00";
}
NF == 3 {
    if (NR > 1) put();
    a = $1;
    b[$2] = $3;
}
NF == 2 {
    b[$1] = $2;
}
END {
    put();
}
function put(    i) {
    for (i = 1; i <= 4; i++) {
        print a, "disk" i, b["disk" i] + 0;
        b["disk" i] = 0;
    }
}

572 F
>>569 awk‚Ì”z—ñ‚Á‚Ä‚Ç‚ê‚­‚ç‚¢Šm•Û‰Â”\‚È‚ÌH
æ‚Ésort‚µ‚½‚ç‚Ç‚¤‚©‚ÈH sort ƒf[ƒ^ | awk -f sum.awk
----- sum.awk -----
$1!~/¤“X–¼/{ if(store==$1 && item==$2) val+=$3; else{ disp(); store=$1; item=$2; val=$3; } }
END{ disp(); }
function disp(){ if(store!="" || item!="") print store, item, val; }
-----

573 F
ƒwƒbƒNƒVƒ‡ƒ“

574 F
$ uname -sr
CYGWIN_NT-6.1 1.7.9(0.237/5/3)
$ awk --version
GNU Awk 3.1.8
‚±‚̊‹«‚ÅA
awk 'BEGIN {for(i=j=1;i<50;++i) {print j; j*=10}}'
‚±‚êŽÀs‚·‚é‚ÆAj‚ª23Œ…’´‚¦‚½‚ ‚½‚è‚©‚çA‚¨‚©‚µ‚­‚È‚é‚ñ‚¾‚¯‚ÇB
awk‚Ì®”‚Á‚ÄãŒÀ‚ ‚é‚ÌHiƒEƒ`‚¾‚¯‚©Hj

575 F
long double•Ó‚è‚̸“x‚µ‚©‚È‚¢‚æB

576 F
>>574
‚¨‚ê‚Ì‚o‚b‚Å‚Í•’Ê‚É 1 ‚©‚ç 1e+048 ‚Ü‚Å•\Ž¦‚³‚ê‚Ü‚·‚ªBBB

577 F
http://ideone.com/QpAMD

578 F
>>576
–{“–‚Å‚·‚©I‚æ‚낵‚¯‚ê‚Ί‹«‚ð‹³‚¦‚Ä‚­‚¾‚³‚¢B
>>577
‚ ‚肪‚Æ‚¤B‚±‚±awk‚à’£‚ꂽ‚ñ‚¾BŒ‹‰Ê‚ª’·‚·‚¬‚Ä¢‚Á‚Ä‚½‚Ì‚æB
³‚É‚±‚ñ‚ÈŒ‹‰Ê‚É‚È‚éB
POSIX‚Å•ÛႳ‚ê‚Ă鸓x‚Í>>575‚Á‚Ä‚±‚ÆH
‚Ä‚±‚Æ‚ÍAawk‚Í“à•”‚Å‚ÍA‘S‚Ä‚Ì”‚ªdoubleˆµ‚¢‚È‚ÌH

579 F
>>578
576‚Å‚·BWindowsXP + GNU Awk 3.0.6 + multi-byte extension 1.15 ‚Å‚·B

580 F
>>579
‚ ‚肪‚Æ‚¤B
‚ ‚Ü‚èˆá‚¢‚ª‚È‚¢‚ÈBWin7‚ÍŠÖŒW‚È‚¢‚¾‚낤‚µB
multi-byte extension‚ª‚»‚Ì•Ó‚è‚à˜M‚Á‚Ä‚¢‚é‚Ì‚©c
‚»‚¤‚¢‚¦‚ÎA1e+048‚Ý‚½‚¢‚ÈŽw”‚Å•\Ž¦‚³‚ê‚é‚ÌH
o—Í‚Ì‚Æ‚«ŠÛ‚ß‚é‚©‚çA‚¿‚á‚ñ‚ÆŒvŽZ‚Å‚«‚Ä‚é‚悤‚ÉŒ©‚¦‚é‚Ì‚©‚ÈB

581 F
awk‚Å‚Í”’l‚Í‚·‚ׂÄdouble‚ňµ‚¢‚Ü‚·B
‚Å‚·‚©‚ç‚»‚̸“x‚Å‚ ‚é53bit•ªA‘å‘Ì15Œ…‚¿‚å‚Á‚Æ‚ð’´‚¦‚é‚ƳŠm‚È’l‚ð•ÛŽ‚Å‚«‚Ü‚¹‚ñB
23Œ…‚ ‚½‚è‚܂ų‚µ‚­•\Ž¦‚Å‚«‚Ä‚é‚Á‚Ä‚Ì‚Í‚æ‚­‚í‚©‚è‚Ü‚¹‚ñ‚ªA
3.0.6‚É‚µ‚Ä‚ào—ÍŽž‚Ì‘Ž®Žw’肪ˆá‚¤‚¾‚¯‚Å“à•”“I‚É‚Í“¯‚¶‚悤‚É•s³Šm‚È’l‚É
‚È‚Á‚Ä‚µ‚Ü‚Á‚Ä‚é‚ÆŽv‚¢‚Ü‚·B

582 F
‚¾‚©‚çAŽÀŽ¿long double‚̸“x‚É‚È‚Á‚Ä‚¢‚é‚ñ‚¾‚Á‚Ä‚ÎB

583 F
>>582
uŽÀŽ¿v‚Æ‚¢‚¤‚Ì‚Í‚Ç‚¤‚¢‚¤ˆÓ–¡?
#define AWKNUM double
‚Á‚Ä‚Ì‚ª‚ ‚邵Along double ‚É‚µ‚Ä‚à‰¼”•”‚Í64bit‚¾‚©‚ç23Œ…‚É‚Í‘«‚è‚È‚¢‚æ?
x87‚̃Œƒxƒ‹‚ÅŠg’£¸“x‚É‚È‚Á‚Ä‚Ä‚àA•\Ž¦‚â‚ç‚È‚ñ‚â‚ç‚·‚é‚Æ‚±‚ë‚Å”{¸“x‚É
ŠÛ‚ß‚ç‚ê‚¿‚Ⴄ‚ÆŽv‚¤‚ñ‚¾‚¯‚ÇB

584 F
http://codepad.org/4GaxJcGp
Š®‘S‚Ɉê’vB‚Ç‚¤Œ©‚Ä‚à double ‚Å‚·B–{“–‚É‚ ‚肪‚Æ‚¤‚²‚´‚¢‚Ü‚µ‚½

585 F
>>581
‚ ‚¤A‚»‚¤‚È‚Ì‚©[B‚ ‚肪‚Æ‚¤‚²‚´‚¢‚Ü‚·B¢‚Á‚½‚È‚ŸB
10i‚ÅŽÀ”ˆµ‚¦‚Æ‚Ü‚Å‚ÍŒ¾‚í‚È‚¢‚¯‚ÇA®”‚Í—~‚µ‚¢B
”‚ð‚¢‚ë‚ñ‚ÈŒ^‚ňµ‚¦‚鈗Œn‚È‚ñ‚Ä‚È‚¢‚©B

586 F
>>583
‚ [Along double‚ÆŒ¾‚Á‚½‚Ì‚ªÙ‚©‚Á‚½‚ËB10‚Ì™p‚Ìꇂ͎ÀŽ¿double‚ð‘å‚«‚­‰z‚¦‚½¸“x‚É‚È‚Á‚Ä‚¢‚é‚ÆŒ¾‚¢‚½‚©‚Á‚½B
10‚Í2‚Æ5‚ÌÏ‚¾‚©‚çA10”{‚ðŒJ‚è•Ô‚·‚Æ‚«‚ɉ¼”•”‚Í5”{‚¸‚‚ɂµ‚©‚È‚ç‚È‚¢B
IEEE‚Ìdouble‚̸“x‚¾‚Æ5‚Ì22æ‚Å53ƒrƒbƒg‚ðŽg‚¢‰Ê‚½‚·‚Ì‚ÅA‚»‚±‚܂ł͌뷂ª¶‚¶‚È‚¢B
Œ¾‚¢Š·‚¦‚ê‚ÎA10‚ÌꇂÍ53ƒrƒbƒg+22ƒrƒbƒgA‘¦‚¿75ƒrƒbƒg•ª¸“x‚ª‚ ‚é‚悤‚ÉŒ©‚¦‚éB
‚Ü‚ŸA>584‚ð10”{‚¶‚á‚È‚­‚Ä5”{‚É‚µ‚ÄAdouble‚ðlong long‚É‚µ‚Ä%.f‚ð%llx‚É‚µ‚ărƒbƒg”‚𔂦‚Ä‚Ý‚ê‚΂킩‚é‚Å‚µ‚åB

587 F
gawk‚̃†[ƒUƒKƒCƒh‚ÉA‘¼‚̈—Œn‚Å‚ÍA•W€ƒGƒ‰[‚ðŽg‚¤‚½‚ßA
@print "Serious error detected!" | "cat 1>&2"
‚Æ‚¢‚¤•û–@‚µ‚©‚È‚¢‚Æ‚ ‚è‚Ü‚·B
gawk‚Í/dev/stderr‚ð“Á•Ê‚Ɉµ‚¤‚½‚ßA
@print "Serious error detected!" > "/dev/stderr"
‚Æ‘‚­‚Ì‚ª“KØ‚Æ‚ ‚è‚Ü‚·B
‚±‚ê‚É‚ÍA‚ǂ̂悤‚ȈႢ‚ª‚ ‚é‚Ì‚Å‚µ‚傤‚©H
/dev/stderr‚ª‚ ‚éOS‚È‚çAcat‚̃vƒƒZƒX‚ª¶¬‚³‚ê‚鑼‚ÍAˆá‚¢‚Í‚È‚¢‚Ì‚Å‚µ‚傤‚©H
ŠÂ‹«‚∗Œn‚ð–â‚킸“®ì‚³‚¹‚½‚¢‚È‚çAã‚Ì‘‚«•û‚Ì•û‚ª‚æ‚¢‚Ì‚©A‹C‚É‚È‚Á‚Ä‚¢‚Ü‚·B
‚æ‚낵‚­‚¨Šè‚¢‚µ‚Ü‚·B

588 F
‘¼‚̈—Œn‚Á‚ÄA‘¼‚Ìawk‚Á‚ÄŽ–‚¾‚æB
/dev/stderr‚ª‚ ‚éOS‚Á‚ÄŽ–‚À‚á‚È‚­‚ÄA
gawk‚Í“ÁŽê‚ȃtƒ@ƒCƒ‹–¼‚Æ‚µ‚Ä/dev/stderr‚Æ‚©Žg‚¦‚é‚æA‚Á‚ÄŽ–‚¾‚æB
‚È‚Ì‚Å‘¼‚ÌOS‚Å‚à gawk ‚¾‚Á‚½‚çprint‚Æ‚©‚Ìo—Íæƒtƒ@ƒCƒ‹–¼‚Æ‚µ‚Ä /dev/stderr Žg‚¦‚é‚Á‚Ęb‚¾‚ËB
/dev/stderr‚Æ‚©‚ðƒTƒ|[ƒg‚µ‚Ä‚¢‚È‚¢gawkˆÈŠO‚Ìawk‚Å‚à“®ì‚³‚¹‚é‚È‚ç ƒpƒCƒv‚Æ"cat 1>&2"‚ðŽg‚¤•û–@‚µ‚©‚È‚¢B‚ªAWinŒn‚Ícat‚¾‚Æ...

589 F
‚»‚±‚Ü‚Å‚Ì‚±‚Æ‚ð‚·‚é‚È‚çPerl/Ruby/Python“™‚Ì‚¿‚á‚ñ‚Æ‚µ‚½
ƒXƒNƒŠƒvƒgŒ¾Œê‚Å‘‚¢‚½•û‚ª‚¢‚¢‚ñ‚¶‚á‚È‚¢‚©‚ÈB‚±‚¤‚¢‚¤
‚Ç‚¤‚Å‚à‚¢‚¢‚Æ‚±‚ë‚Å”Y‚Ü‚È‚­‚ÄÏ‚Þ‚æB
awk‚Íawk‚ÅŽèŒy‚É‘‚¯‚é”͈͂Ȃ瑼‚Ì’Ç‚ð‹–‚³‚È‚¢‚ÆŽv‚¤‚ª
‚»‚̘g‚ð‚Í‚Ýo‚悤‚Æ‚·‚é‚Æ“r’[‚É‘å•Ï‚É‚È‚éB‚»‚±‚ªŠy‚µ‚¢‚Æ
‚¢‚¤‚Ì‚È‚ç–³—‚É‚ÍŽ~‚ß‚È‚¢‚¯‚Çw


590 F
>>589
‚»‚¤A‚»‚ꂪŠy‚µ‚¢‚ñ‚¾

591 F
>>588
‚ ‚肪‚Æ‚¤‚²‚´‚¢‚Ü‚·B
cat‚ª‚È‚¢ŠÂ‹«‚¾‚ÆA‚Ç‚¤‚µ‚悤‚à‚È‚¢‚Å‚·‚Ëc
>>589
ƒRƒ“ƒ}‹æØ‚è‚̃f[ƒ^‚ðAƒVƒFƒ‹ƒXƒNƒŠƒvƒg‚ň—‚µ‚Ä‚¢‚½‚Ì‚ÅA
‚»‚ê‚ðawk‚ɈÚA‚µ‚Ä‚¢‚Ü‚µ‚½Bˆê”ÔŽèŒy‚¾‚Á‚½‚Ì‚Å‚·B
‚¿‚È‚Ý‚ÉA2ŽžŠÔ”¼ˆÈã‚©‚©‚Á‚Ä‚¢‚½ˆ—‚ªA1•ªˆÈ“à‚É’Zk‚³‚ê‚Ü‚µ‚½B
ƒƒ‰ƒ^B@@@ƒƒ‰ƒ^c

592 F
C‚Å‘‚«’¼‚µ‚½‚甕b‚ÅŽÀsŠ®—¹‚Ì—\Š´‚—

593 F
‚Â[‚Ä‚àawk‚Æ‚©‚»‚Ì‘¼‚̃XƒNƒŠƒvƒg‚ŃTƒNƒb‚Æ‘‚¯‚é‚悤‚È•¶Žš—ñˆ—‚ð
CŒ¾Œê‚Æ‚©‚Å‚Í‚ ‚ñ‚Ü‚è‘‚«‚½‚­‚È‚ç‚ñ‚ÆŽv‚¤‚¼w

594 F
‚È‚è‚Ü‚¹‚ñ

595 F
‚ ‚Ÿ‚ ‚ ‚Ÿ‚Ÿ‚Ÿ```–³—‚¾‚Á‚½‚©AA–³—‚È‚Ì‚©[Ia[0][0] = 1 ¨ syntax error

596 F
>>595
gawk‚ÌꇃCƒ“ƒfƒbƒNƒX‚ðSUBSEP(=\034‚ªƒfƒtƒHƒ‹ƒg)‚ð‹²‚ñ‚ŃVƒŠƒAƒ‰ƒCƒY‚µ‚½ƒCƒ“ƒfƒbƒNƒX‚Å‘½ŽŸŒ³”z—ñ‚ð•\Œ»‚·‚é
a[0,0] = 1;
‚È‚çOK‚Ì‚Í‚¸B‚±‚Ì‚Æ‚«‚̃Cƒ“ƒfƒbƒNƒX‚Í"0\0340"‚¾‚©‚çAa["0\0340"] == 1B

597 F
>>596
‚ ‚肪‚Æ‚¤BŽn‚ß‚©‚ç‚»‚ê‚ðˆÓŽ¯‚µ‚Ä‘‚¢‚Ä‚½‚ç‚æ‚©‚Á‚½‚ñ‚¾‚¯‚Ç‚ËB
god["name"] = "Kaname Madoka"
god["msg"] = "Mahoushoujo ha watashi dakede juubun dayo."
homerun["name"] = "Akemi Homura"
homerun["msg"] = "Madoka ha watashi no yome."
‚±‚ñ‚È•—‚É‘‚¢‚Ä‚¢‚½‚Ì‚ðA
puella_magi["god"] = god
puella_magi["homerun"] = homerun
‚Ý‚½‚¢‚ɂ܂Ƃ߂悤‚Æ‚µ‚½‚çA‚ ‚΂΂΂Î
awk‚Ì”z—ñ‚Á‚Ĉ—Œn‚É‚æ‚Á‚Ä‚Í“Y‚¦Žš‚ª®”‚Ìê‡Aˆ—‚ªÅ“K‰»‚³‚ê‚Ä‘‚­‚È‚Á‚½‚è‚·‚é‚Ì‚©‚ÈH
\‘¢‘Ì‚Ì‘ã‚í‚è‚Ý‚½‚¢‚ÉŽg‚¢‚½‚©‚Á‚½‚Ì‚¾‚ªB

598 F
name["god"] = "Kaname Madoka"
msg["god"] = "Mahoushoujo ha watashi dakede juubun dayo."
name["homerun"] = "Akemi Homura"
msg["homerun"] = "Madoka ha watashi no yome."
‚Å‚æ‚­‚ËH

599 F
awk‚Á‚Ä *‚Ç‚ÌŽÀ‘•‚Å‚à* ˆê“x‚àŽg‚Á‚½‚±‚Æ‚ª‚È‚¢•Ï”‚Ì“à—e‚Á‚ÄAƒXƒJƒ‰‚È‚ç0‚©""‚É‚È‚Á‚Ä‚é‚ÌH
•Ï”‚ªˆê“x‚à‘ã“ü‚³‚ê‚Ä‚¢‚È‚¢‚±‚Æ‚ð”»’è‚·‚邽‚ß‚ÉA(x==0 && x=="")‚Á‚Ä‘‚¢‚ĉ½‚©–â‘è‚È‚¢H

600 F
>>599
•]‰¿‚³‚ê‚é‚Æ‚«‚É•Ï”‚ª‘¶Ý‚µ‚È‚¯‚ê‚Î쬂³‚ê‚éB‚Í‚¸
”z—ñ‚Ì—v‘f‚È‚ç in ‚Å’²‚ׂç‚ê‚邯‚Ç
•Ï”Ž©‘Ì‚Æ‚È‚é‚Æ‚Ç‚¤‚¾‚낤‚Ë

601 F
>>599
‰½“x‚à‘ã“ü‚µ‚½ŒãAÅŒã‚É 0 or "" ‚ð‘ã“ü‚µ‚½•Ï”‚Æ‹æ•Ê‚Å‚«‚È‚¢B

602 F
>>600-601
‚ ‚肪‚Æ‚¤B‹æ•Ê‚Å‚«‚È‚¢‚Á‚ÄA‚Ç‚¤‚¢‚¤ó‘Ô‚É‚È‚é‚ÌH0‚ð‘ã“ü‚µ‚½‚ç0‚©"0"‚É•]‰¿‚³‚ê‚éB
‚ ‚ A""‚ð‘ã“ü‚µ‚½‚ç0‚©""‚É•]‰¿‚³‚ê‚Ä‘Ê–Ú‚Á‚Ä‚±‚Æ‚©IH

603 F
‚ ‚êHŽŽ‚µ‚½‚ç‚Ç‚Á‚¿‚ð‘ã“ü‚µ‚Ä‚à599‚ÌŽ®‚Í0‚É•]‰¿‚³‚ꂽ‚æB‹æ•Ê‚Å‚«‚È‚¢ƒP[ƒX‚Á‚Ä‚Ç‚¤‚¢‚¤ê‡H

604 F
BEGIN {
    # ‰Šú‰»’¼Œã (–¢Žg—p) ‚Ì•Ï”‚Í”’l (0) ‚Æ•¶Žš—ñ ("") ‚Ì—¼•û‚ÌŒ^‚ðŽ‚ÂB
    print x == 0, x == ""; # —¼•û‚Æ‚à^
    x = 0;
    print x == 0, x == ""; # ‘OŽÒ‚Ì‚Ý^B
    x = "";
    print x == 0, x == ""; # ŒãŽÒ‚Ì‚Ý^B
    # ‘¼‚Ì–¢Žg—p‚Ì•Ï”‚ð‘ã“ü‚·‚é‚Æ "ĉŠú‰»" ‚Å‚«‚éB
    x = y;
    print x == 0, x == ""; # —¼•û‚Æ‚à^B
}

605 F
> ‰Šú‰»’¼Œã (–¢Žg—p) ‚Ì•Ï”‚Í”’l (0) ‚Æ•¶Žš—ñ ("") ‚Ì—¼•û‚ÌŒ^‚ðŽ‚ÂB
IEEE Std 1003.1 ‚Ì awk ‚Ì EXTENDED DESCRIPTION ‚Ì
Variables and Special Variables ‚É‘‚¢‚Ä‚ ‚é‚ËB uninitialized value ‚Æ‚¢‚¤‚炵‚¢B
POSIX‚É€‹’‚µ‚Ä‚éawk‚Ȃ炱‚¤‚È‚é‚Ý‚½‚¢‚¾‚¯‚ÇAƒIƒŠƒWƒiƒ‹‚Í’m‚ç‚ñB
ĉŠú‰»‚·‚é‚È‚ç$(NF+1)Žg‚¤‚Ù‚¤‚ª‚¢‚¢‚©‚à‚ËB–¢Žg—p‚Ì•Ï”‚ð—pˆÓ‚µ‚È‚­‚Ä‚¢‚¢B
‚¾‚¯‚ÇA‚»‚ꂪ•K—v‚Èê–Ê‚ªŽv‚¢•‚‚©‚΂Ȃ¢‚ªB
ŠÖŒW‚È‚¢‚¯‚ÇAabsŠÖ”‚Á‚Ä‚È‚¢‚ñ‚¾‚ËB•Ê‚É—Ç‚¢‚¯‚ÇAƒÎ‚âA
0‚æ‚è‘å‚«‚¢Å¬‚Ì•‚“®¬”“_”‚Í’è‹`‚µ‚Ä‚Ä‚Ù‚µ‚¢‚È‚ B

606 F
>>605
> ĉŠú‰»‚·‚é‚È‚ç$(NF+1)Žg‚¤‚Ù‚¤‚ª‚¢‚¢‚©‚à‚ËB–¢Žg—p‚Ì•Ï”‚ð—pˆÓ‚µ‚È‚­‚Ä‚¢‚¢B
ƒtƒB[ƒ‹ƒh•Ï”‚Íí‚É•¶Žš—ñŒ^‚ÅA ”’lŒ^‚ÍŽ‚½‚È‚¢B

607 F
ƒÎ‚Íatan2(0,-1)‚Å‚¢‚¢‚Æ‚µ‚Ä
u0‚æ‚è‘å‚«‚¢Å¬‚Ì•‚“®¬”“_”v‚Á‚Ä‚Ç‚¤’è‹`‚µ‚Ä‚¢‚ÂŽg‚¤‚Ì?

608 F
u0‚æ‚è‘å‚«‚¢Å¬‚Ì•‚“®¬”“_”v‚Æ‚¢‚¤‚Ì‚ª‰½‚ðŠó–]‚µ‚Ä‚¢‚é‚©‚É‚æ‚éB
ˆÈ‰º‚Ì3Ží—Þ‚ª‚ ‚éB
(1) Ŭ‚̳‚Ì”ñ³‹K”
(2) Ŭ‚̳‚̳‹K”
(3) 1.0‚É‘«‚µ‚ÄŠÛ‚ß‚½Œ‹‰Ê‚ª1.0‚æ‚è‘å‚«‚­‚È‚éŬ‚Ì”

609 F
>>606
‚ ‚¿‚áI‚»‚¤‚Å‚µ‚½B$‚Å–ß‚é‚Ì‚Í•¶Žš—ñ‚¾‚Á‚½B
‚»‚ÌŽd—l‘“Ç‚ñ‚Å‚é‚ÆANF‚ðŠg’£‚µ‚½‚Æ‚«AŒ³X‚È‚©‚Á‚½Š‚Íuninitialized value‚É‚È‚é‚Á‚Ä‚ ‚Á‚½‚Ì‚ÅB
>>607
‚»‚ê‚Å‚¢‚¢‚ñ‚¾‚¯‚ÇAPI‚Æ‚©‚ÅŽQÆ‚Å‚«‚½‚ç‚à‚Á‚Æ‚¢‚¢A‚ÆŽv‚Á‚½‚Ì‚Å‚·B
>>608
”’lŒvŽZ‚Ì‚½‚ß‚ÉAC‚ÌDBL_EPSILON‚Ì‘ã‚í‚è‚É‚È‚é’蔂ª—~‚µ‚¢‚È‚ÆB
”CˆÓ‚̸“x‚ÅŠÛ‚ß‚ç‚ê‚éŠÖ”‚à‚È‚¢‚Å‚·‚µB

610 F
DBL_EPSILON‚ª>>608‚Ì(1)`(3)‚Ì‚Ç‚ê‚©‚í‚©‚ç‚È‚¢H
”’lŒvŽZ‚ÌŠî–{‚È‚ñ‚¾‚ªB

611 F
•Ï”–¼‚È‚ÇAŽ©‘O‚Å‚ ‚Á‚Ä‚à‹K‘¥‚ðˆÓŽ¯‚µ‚Ä‚¢‚é•û‚¢‚Ü‚·‚©H
awk‚¾‚ÆA‚b•—‚ªˆê”Ê“I‚È‚Ì‚Å‚µ‚傤‚©H
ˆê”Ôʼn‚ªVBA‚¾‚Á‚½‚Ì‚ÅA’·‚¢–¼‘O‚ÆÈ—ª‚ª¬‚´‚Á‚Ä‚µ‚Ü‚Á‚Ä
Ž©•ª‚ŃCƒ‰ƒCƒ‰‚µ‚Ä‚¢‚Ü‚·B
‚Ý‚È‚³‚ñ‚ÌA’Êí‚Ì•Ï”‚Í‚±‚¤A”z—ñ‚Í‚±‚¤A’蔂͂±‚¤A•¶ŽšŒ^‚Í‚±‚¤¥¥¥
‚Æ‚¢‚¤‚à‚Ì‚ðŽQl‚É‚µ‚½‚¢‚Å‚·B

612 F
>>611
ƒVƒXƒeƒ€ƒnƒ“ƒKƒŠƒAƒ“‚ðÌ—p‚·‚é‚©‚Ç‚¤‚©”Y‚Þ‚Ù‚Ç‘å‚«‚È‚à‚Ì‚ðawk‚Å‘‚¢‚½‚±‚Æ‚ª–³‚¢

613 F
A5‚È‚í‚â‚ ‚Ó‚§t( ())

614 F
>>611
’xƒŒƒX‚¾‚ªAŒ^_“à—e‚Ìà–¾_–¼‘O‚Ý‚½‚­‚µ‚Ä‚éB–¼‘O‚ªˆê•¶Žš‚¾‚Æ‚»‚Ì‚Ü‚Ü‚¾‚¯‚ÇB
ƒOƒ[ƒoƒ‹•Ï”‚ƃ[ƒJƒ‹•Ï”‚Ì‚Ç‚Á‚¿˜M‚Á‚Ä‚é‚Ì‚©•ª‚©‚è‚â‚·‚¢‚悤‚ÉAƒ[ƒJƒ‹•Ï”‚Í•K‚¸l‚ÅŽn‚ß‚é‚悤‚É‚µ‚Ä‚éB
d_per_shouhizei = 5.0‚Æ‚©‚ËB

615 F
gawk‚ÅBINMODE‚ðÝ’è‚·‚ê‚΃oƒCƒiƒŠ[‚Ì“üo—Í‚ª‚Å‚«‚é‚Ì‚Í‚í‚©‚é‚Ì‚Å‚·‚ªA
“ü—Í‚³‚ꂽƒoƒCƒiƒŠ[‚ð16iƒ_ƒ“ƒv‚µ‚Ä•\Ž¦‚·‚é‚É‚Í‚Ç‚¤‚µ‚½‚ç‚æ‚¢‚Å‚µ‚傤‚©H
od“™‚ÌŠO•”ƒRƒ}ƒ“ƒh‚ðŽg‚¤ˆÓŠO‚É•û–@‚ª‚ ‚ê‚΂¨‹³‚¦‚­‚¾‚³‚¢B

616 F
printf("%02x\n", $1);

617 F
“ñ“x‚Ƙb‚©‚¯‚ñ‚È‚æ
‚¨‘O‚ç‚Á‚Ä‚Ç‚¤‚Ý‚Ä‚àƒSƒ~‚¾‚æ‚È

618 F
ƒSƒ~‚ñ‚È‚³‚¢

619 F
>>595
gawk4.0.0‚Åa[0][0]=1‚à‰Â”\‚É‚È‚Á‚½‚¶‚á‚È‚¢‚©

620 F
’´‰SŽÒ‚ÌŽ¿–â‚Å\‚µ–ó‚ ‚è‚Ü‚¹‚ñBˆÈ‰º‚̂悤‚ȃf[ƒ^‚ð
aaa 10
bbb 20
ccc 30
aaa 30
bbb 30
aaa 15
ccc 30
ddd 20
ˆÈ‰º‚̂悤‚É‚Ü‚Æ‚ß‚½‚¢‚Ì‚Å‚·‚ªA‚Ç‚¤‚µ‚½‚ç‚¢‚¢‚Å‚µ‚傤‚©H
aaa 55
bbb 50
ccc 60
ddd 25

621 F
ddd 20 ‚Å‚Í‚È‚¢‚©‚ÆŽv‚¤‚ª‚±‚ñ‚ÈŠ´‚¶‚©‚È
awk '{a[$1]+=$2} END {for (b in a) {print b " " a[b]}}' | sort

622 F
Gawk4‚È‚çPROCINFO["sorted_in"]‚ÌÝ’è‚ÅÅŒã‚Ìsort‚ª—v‚ç‚È‚­‚È‚é

623 F
>621
‚ ‚肪‚Æ‚¤‚²‚´‚¢‚Ü‚·I‚¤‚Ü‚­‚¢‚«‚Ü‚µ‚½B

624 F
gawk‚Í‚à‚¤•ÊŒ¾Œê‚ȃCƒ[ƒWB•’imawkŽg‚Á‚Ä‚é‚Æ

625 F
‚±‚±‚Á‚Ķ‚«‚Ä‚Ü‚·‚©H

626 F
¶‚«‚Ä‚Ü‚·‚ñ

627 F
¶‚«‚Ä‚¢‚邱‚Æ‚ðŠè‚Á‚ÄŽ¿–â‚ðB
WIN32‚ÌEXEˆê‚‚ÅA‰º‚ÌTEST.AWK‚ªƒ}ƒgƒ‚‚É“®‚­AWK‚ð’T‚µ‚Ä‚¢‚Ü‚·B
‚±‚ê‚çˆÈŠO‚É‚ ‚è‚Ü‚·‚©H
http://hinadori.atnifty.com/~wills/program/gawkm115.zip
http://my.vector.co.jp/servlet/System.FileDownload/download/http/0/376460/pack/win95/util/text/awk/gawk-mbcs-win32-20051223.zip?ds
http://my.vector.co.jp/servlet/System.FileDownload/download/http/0/80308/pack/win95/util/text/awk/mw32r27.lzh?ds
Cygwin”Å‚àŽŽ‚µ‚½‚Ì‚Å‚·‚ªƒ_ƒ‚Å‚µ‚½B
TEST.AWK
{ gsub("[0-9]","x",$0) ; gsub("¿","ƒ\",$0) ; gsub("T","‚s",$0) ; print }
TEST.DAT
±²³´µ¶·¸¹º»¼½¾¿
ƒRƒRƒRƒRƒTƒtƒTƒRƒRƒRƒRƒR
ƒRƒRƒRƒRƒTƒtƒTƒRƒRƒRƒR
ƒRƒRƒRƒRƒTƒtƒTƒRƒRƒRƒRƒR
ƒRƒRƒRƒRƒTƒtƒTƒRƒRƒRƒRƒR
ƒTƒtƒTƒtƒTƒtƒTƒtƒTƒtƒT
ƒRƒRƒRƒRƒTƒtƒTƒRƒRƒRƒRƒR
ƒRƒRƒRƒRƒTƒtƒTƒRƒRƒRƒR
ƒRƒRƒRƒRƒTƒtƒTƒRƒRƒRƒRƒR
ƒRƒRƒRƒRƒTƒtƒTƒRƒRƒRƒRƒR
ƒTƒtƒTƒtƒTƒtƒTƒtƒTƒtƒT

628 F
TEST.DAT‚ÍA‹ó”’‚ª“ü‚Á‚Ä‚¢‚Ü‚·B
êƒuƒ‰‚̃|ƒbƒvƒAƒbƒv‚ðƒRƒsƒy‚µ‚ĉº‚³‚¢B

629 F
ƒEƒ`‚É‹A‚Á‚Ä‚©‚ç’²‚ׂĂ݂é‚æ

630 F
>>627|628
cygwin‚Ìawk(GNU Awk 3.1.8)‚Å“®‚­‚¯‚ÇA‚Ç‚¤‚È‚é‚Í‚¸‚ª‚Ç‚¤“®‚©‚È‚¢‚ÆŒ¾‚Á‚Ä‚¢‚é?
>627‚Ìtest.dat‚È‚çA“–‘Ruƒ\v‚¾‚¯‚ª•ÏŠ·‚³‚ê‚邯‚ÇB

631 F
iCygwin‚È‚çUTF8‚¶‚á‚È‚¢‚Æ‚¤‚Ü‚­“®‚©‚È‚¢‚¯‚ÇjShift JIS‚Å“®ì‚³‚¹‚½‚¢‚Á‚Ä‚±‚Æ‚©‚ÈH
Ž–‘O‚ÉTEST.DAT‚ðnkf -w‚É’Ê‚µ‚½‚ç‘Ê–Ú‚©‚ÈB

632 F
>>627
ƒXƒNƒŠƒvƒg‚àDAT‚àSJIS‚ÅŽŽ‚µ‚½‚¯‚ÇAã‹L3‚‚̂¤‚¿Agawk-mbcs-win32-20051223.zip‚̓_ƒ‚¾‚Á‚½‚æB
1s–Ú‚ª‚±‚ñ‚È‚ñ‚È‚éB
±xx´µ¶·¸xº»xxxƒ\
ŽèŽ‚¿‚Ì
GNU Awk 3.1.7(windows special Nov 24 2009)
‚ÅA--ctype=SJIS‚â‚Á‚Ä‚à“¯‚¶Œ‹‰Ê‚É‚È‚é‚ËB
ƒXƒNƒŠƒvƒgADAT‚ðUTF-8‚É‚µ‚ÄA--ctype=UTF8‚â‚Á‚ăŠƒ_ƒCƒŒƒNƒg‚µ‚½ƒtƒ@ƒCƒ‹‚ͳí‚ÈŒ‹‰Ê‚ªo‚é‚æB
ƒŠƒ_ƒCƒŒƒNƒg‚µ‚È‚¢‚ŃRƒ}ƒ“ƒhƒvƒƒ“ƒvƒg‚É•\Ž¦‚³‚¹‚é‚Ɖ»‚¯‚邯‚ÇB

633 F
EUC‚Ȃ甼ŠpƒJƒi‚à‚¤‚Ü‚­‚â‚Á‚Ä‚­‚ê‚é‚ñ‚¾‚ªc

634 F
gawk‚̓Kƒ“ƒKƒ“‹@”\‚ðŠg’£‚µ‚Ă邯‚ÇA
‚»‚ë‚»‚ëOOP‘Ήž‚µ‚Ä‚­‚ê‚È‚¢‚©‚ÈB
awk++‚Æ‚©‚ ‚邯‚ÇA•W€‚ÅOOP‚Å‚«‚ê‚Í•Ö—˜B

635 F
> OOP
...‚à‚Í‚âawk‚Å‚â‚éˆÓ–¡‚ª–³‚¢w ‘¼‚É‚¢‚­‚ç‚Å‚à‚ ‚é•Ê‚ÌŒ¾Œê‚Å‚¢‚¢‚¶‚á‚ñ

636 F
awk‚ÉÝ‚é‚Æ•Ö—˜‚©‚à‚ÆŽv‚¤‚Ì‚ÍŽQÆ’l‚­‚ç‚¢‚©‚È
”z—ñ‚âŠÖ”‚Ö‚ÌŽQÆ‚ð’l‚Æ‚µ‚ÄŽæ‚èo‚µŠi”[‚µ‚½‚è
‹t‚É‚»‚Ì’l‚©‚猳‚Ì”z—ñ‚ɃAƒNƒZƒX‚µ‚½‚茳‚ÌŠÖ”‚ðŒÄ‚ñ‚¾‚èo—ˆ‚é‚Æ
‘Š“–‚É•¡ŽG‚ȃf[ƒ^\‘¢‚ª•\Œ»‰Â”\‚É‚È‚éA‚»‚ꂱ‚»OOP‚Á‚Û‚¢‚±‚Æ‚à‰Â”\‚¾‚µ
‚Å‚à‚ ‚ñ‚Ü‚è‚â‚₱‚µ‚¢‚±‚Æ‚â‚é‚È‚çPerl‚Å‚¢‚¢‚©‚ç•K{‚Å‚Í‚È‚¢‚Ë

637 F
> ŠÖ”‚ðŒÄ‚ñ‚¾‚è
•Ï”‚Ì’l‚ðŠÖ”–¼‚Æ‚µ‚Ä
var = "sage";
@var();
‚Á‚Ä‚Å‚«‚邯‚ÇA‚»‚ê‚Ƃ͈Ⴄ‚Ì‚ñH


638 F
‚¨‚æA‚à‚¤‚ ‚é‚Ì‚©w
Å‹ß‚Ìawk‚Í•ª‚©‚ç‚Ë‚¦c‚Á‚Ä‚±‚Æ‚ÍA”z—ñ‚Ö‚ÌŽQÆ‚ðŽg‚Á‚Ä“ü‚êŽq‚Ì”z—ñ‚Æ‚©Šù‚Éì‚ê‚¿‚á‚Á‚½‚è‚·‚é‚Ì‚©H

639 F
”z—ñ‚Ì”z—ñ‚Íì‚ê‚é‚æBgawk4‚È‚çB

640 F
iL_TMjÌ°Ý

641 F
class human {
@@property name
@@property sex
@@property age
@@method new(x, y, z) {
@@@@name = x
@@@@sex = y
@@@@age = z
@@}
@@method say() {
@@@@printf("Ž„‚Í%sB%d΂Ì%s‚Å‚·B\n",name, age, sex)
@@}
}
class japanese : human {
@@property name
@@property sex
@@property age
@@method say() {
@@@@printf("Ž„‚Í%sB%d΂Ì%s‚Å‚·B‘Ђ͓ú–{‚Å‚·B\n", name, age, sex)
@@}
}
BEGIN {
@@alice = human.new("ƒAƒŠƒX", "—", 11)
@@taro = japanese.new("‘¾˜Y", "’j", 15)
@@yuka = japanese.new("—R‰À", "—", 18)
@@alice.say()
@@taro.say()
@@yuka.say()
}

642 F
>>635
http://code.google.com/p/lawker/source/browse/fridge/lib/bash/awk%2B%2B/
‚±‚ê‚ðŽg‚¦‚΂±‚Ì’ö“x‚ÌOOP‚Í‚Ç‚¤‚É‚©‚Å‚«‚éB
–{“–‚É‚±‚Ì’ö“x‚Å‚¢‚¢‚©‚çOOP‚ɑΉž‚µ‚Ä‚Ù‚µ‚¢B
Žg‚¤l‚Í‚Ù‚Æ‚ñ‚Ç‚¢‚È‚¢‚ÆŽv‚¤‚ªA‘S‚­‚Å‚«‚È‚¢‚̂ࢂéB

643 F
‚»‚ê‚ÍÅ‘awk‚Å‚ ‚é•K—v‚ª‘S‚­–³‚¢

644 F
function Human(self,name,sex,age) {
self["property___name"] = name
self["property___sex"] = sex
self["property___age"] = age
self["method___say"] = "Human___say"
}
function Human___say(self) {
printf "Ž„‚Í%sB%d΂Ì%s‚Å‚·B\n", self["property___name"], self["property___age"], self["property___sex"]
}
function Japanese(self,name,sex,age) {
Human(self,name,sex,age)
self["method___say"] = "Japanese___say"
}
function Japanese___say(self) {
printf "Ž„‚Í%sB%d΂Ì%s‚Å‚·B‘Ђ͓ú–{‚Å‚·B\n", self["property___name"], self["property___age"], self["property___gender"]
}
function methodcall(obj,methodname, m) {
m = obj["method___" methodname]
@m(obj)
}
BEGIN {
Human(alice, "ƒAƒŠƒX", "—", 11)
Japanese(taro, "‘¾˜Y", "’j", 15)
Japanese(yuka, "—R‰À", "—", 18)
methodcall(alice,"say")
methodcall(taro,"say")
methodcall(yuka,"say")
}

645 F
‚²‚ß‚ñˆê•”gender‚É‚È‚Á‚Ä‚é‚©‚çsex‚É’¼‚µ‚Æ‚¢‚Ä
‚Æ‚è‚ ‚¦‚¸A‚±‚ñ‚ÈŠ´‚¶‚Ågawk4‚Å‚àOOPŽ©‘Ì‚Ío—ˆ‚é‚æ‚Á‚Ęb

646 F
>>644
‚È‚é‚Ù‚Ç‚Ë[
‚Æ‚Ä‚à•×‹­‚É‚È‚è‚Ü‚·
‚Å‚àA‚â‚Á‚Ï‚èOOP—p‚Ì\•¶‚ªŽg‚¦‚ê‚΃xƒXƒg‚Å‚·‚Ë
‚»‚Ì‚Ù‚¤‚ª‚í‚©‚è‚â‚·‚¢‚ÆŽv‚¢‚Ü‚·

647 F
‚â‚Á‚Ï•ÊŒ¾ŒêŽg‚¤‚ׂ«‚¾‚ë

648 F
–{“–‚É—~‚µ‚¢‚ñ‚È‚çAgawk‚ÌML‚É‚±‚¤‚·‚ê‚ÎOOPŽÀŒ»‚Å‚«‚邱‚Æ‚ð”­Œ©‚µ‚½‚ñ‚¾‚¯‚ÇA
‚±‚ê‚Ì“œˆß\•¶‚ð—pˆÓ‚µ‚Ä‚­‚ê‚Á‚Ä“Še‚·‚é‚Æ‚¢‚¢‚ñ‚¶‚á‚Ë
switch‚àŽÀ‘•‚³‚ê‚Ă邵A—~‚µ‚¢l‚ª‹‚é‚Æ•ª‚©‚ê‚Εt‚¯‚Ä‚­‚ê‚é‚©‚à‚æ

649 F
#! /usr/bin/env python
# -*- coding: utf-8 -*-
class human:
@@def __init__(self, name, sex, age):
@@@@self.name = name
@@@@self.sex = sex
@@@@self.age = age
@@def say(self):
@@@@print("Ž„‚Í" + self.name + "B" + str(self.age) + "΂Ì" + self.sex + "‚Å‚·B")
class japanese(human):
@@def __init(self):
@@@@super(human, self).__init__(self)
@@def say(self):
@@@@print("Ž„‚Í" + self.name + "B" + str(self.age) + "΂Ì" + self.sex + "‚Å‚·B‘Ђ͓ú–{‚Å‚·B")
if __name__ == "__main__":
@@alice = human("ƒAƒŠƒX", "—", 11)
@@taro = japanese("‘¾˜Y", "’j", 15)
@@yuka = japanese("—R‰À", "—", 18)
@@alice.say()
@@taro.say()
@@yuka.say()

650 F
python‚Å‘‚¢‚Ä‚Ý‚é‚ÆA
>>641‚Æ”ä‚ׂé‚Æ“Á‚É‚í‚©‚è‚â‚·‚¢‚킯‚Å‚à‚È‚¢‚¯‚Ç
>>644‚æ‚è‚Í‚í‚©‚è‚â‚·‚¢

651 F
‚»‚è‚áawk‚ÍOOPL‚Å‚Í‚È‚¢‚©‚ç‚È
‚ ‚­‚܂ŃVƒFƒ‹‚Ì‚¨‹Ÿ‚Å‚¢‚¢‚ÆŽv‚¤‚ñ‚¾
‚»‚µ‚Ä‚»‚±‚É‚“x‚ÈOOP‹@”\‚Í—v‚é‚Æ‚ÍŽv‚¦‚È‚¢
‚Ç‚¿‚ç‚©‚ÆŒ¾‚¦‚΃tƒB[ƒ‹ƒh’Šo‚Æ‚©‚ð‚à‚Á‚Æ•Ö—˜‚É‚·‚ׂ«‚¾‚æ

652 F
cygwinˆÈŠO‚Ågawk4.0‚ðwindows‚ÅŽg‚¨‚¤‚ÆŽv‚Á‚½‚çAƒoƒCƒiƒŠ‚Í‚Ç‚±‚Å“üŽè‚Å‚«‚à‚¤‚·‚©‚ËH

653 F
cygwin ‚Å‘Ê–Ú‚È——R‚ª•ª‚©‚ç‚È‚¢‚©‚狳‚¦‚ç‚ê‚È‚¢B

654 F
>>652
‚Âhttp://www.klabaster.com/progs/gawk32.zip

655 F
>654 ‚³‚ñ‚­‚·‚±
>653 awk‚ÌŽÀsŒ`Ž®‚¾‚¯“üŽè‚·‚ê‚Ηǂ¢‚悤‚É‚µ‚½‚¢‚Ì‚³B

656 F
ƒoƒCƒiƒŠŒÝŠ·‚ÌWindows‚È‚Ì‚ÉAcygwin‚Äexe‚ð‚à‚Á‚Ä‚­‚¾‚¯‚¶‚áŽg‚¦‚È‚¢‚ÌH

657 F
•¨‚É‚æ‚Á‚Ä‚ÍŽg‚¦‚½‚悤‚È‹C‚ª‚·‚éB
cygwin1.dll‚¾‚Á‚¯H‚ɃpƒX‚ª’Ê‚Á‚Ä‚ê‚Αå‘ÌŽg‚¦‚½‚悤‚È‹C‚ª‚·‚éB

658 F
Œ‹\‘òŽR‚Ìdll‚ª—v‚é‚æ
ƒRƒ}ƒ“ƒh‚É‚æ‚邯‚Ç

659 F
‹³‚¦‚Ä‚­‚¾‚³‚¢B‰pŒê“¾ˆÓ‚Èl
http://www.gnu.org/s/gawk/manual/gawk.html#Array-Sorting-Functions
‚Ì@asort(), asorti()‚ÅŽg‚¤ƒ†[ƒU[’è‹`‚Ì”äŠrŠÖ”‚ɂ‚¢‚Ä
3”Ԗڂ̈ø”‚ÆPROCINFO["sorted_in"]‚ÉÝ’è‚·‚é‚̂ƈႤ‚Ì‚©“¯‚¶‚È‚Ì‚©H
‚»‚ê‚Æ
http://www.gnu.org/s/gawk/manual/gawk.html#String-Functions
‚É‘‚¢‚Ä‚ ‚é3”Ԗڂ̈ø”‚Ìà–¾("descending"‚Æ‚©)‚ª—¼—§‚µ‚Ä‚ñ‚ÌH

660 F
http://www.gnu.org/s/gawk/manual/gawk.html#Array-Sorting-Functions
As with PROCINFO["sorted_in"], this argument may be the name of a user-defined function, ....
http://www.gnu.org/s/gawk/manual/gawk.html#String-Functions
The third argument can also be a user-defined function name ....
‘æŽOˆø”‚Ì’l‚Æ“¯–¼‚ÌŠÖ”‚ª’è‹`Ï‚Ý‚È‚ç‚»‚ê‚ð—˜—p‚·‚é‚Æ‚©A
‚»‚¤‚¢‚¤•û–@‚Å‹æ•Ê‚µ‚Ä‚é‚ñ‚¶‚á‚È‚¢‚Ì

661 F
>>659
”äŠrŠÖ”‚Ì—^‚¦•û‚ÍPROCINFO["sorted_in"]‚ÌꇂƓ¯‚¶‚Á‚Ä‚±‚Æ‚¾‚ëB
Ž©•ª‚Å’è‹`‚µ‚½ŠÖ”‚Ì–¼‘O‚Å‚à‚¢‚¢‚µA11.2.1.2‚É‘‚¢‚Ä‚ ‚é‚悤‚É‚·‚Å‚É—pˆÓ
‚³‚ê‚Ä‚¢‚é@`‚ðŽg‚Á‚Ä‚à‚¢‚¢B


662 F
ŒÂl“I‚É‚ÍAGAWK‚É‚Í‚ ‚ÆAC‚Å‘‚¢‚½ŠÖ”‚̌ĂÑo‚µ‚Æ‚¢‚¤‚©
GAWK‚ŌĂԊ֔‚ðC‚Å‘‚¯‚é‹@”\‚ª—~‚µ‚¢‚ÆŽv‚Á‚Ä‚é‚ñ‚¾‚¯‚ÇA
‚±‚±Œ©‚éŒÀ‚袊ԓI‚É‚Í‚ ‚ñ‚Ü‚èŽù—v‚È‚¢‚ñ‚©‚Ë‚¥B
‚Ü‚ŸA‚»‚ê‚â‚é‚­‚ç‚¢‚È‚çGAWKŽ©‘Ì‚É•ÏX‚ð‰Á‚¦‚ÄăRƒ“ƒpƒCƒ‹‚µ‚ë‚Á‚Ä‚±‚Æ‚©‚à‚µ‚ê‚È‚¢‚¯‚ÇB

663 F
P‚Æ‚©RŽg‚¦Œ¾‚í‚ê‚é‚ÆŽv‚¤B

664 F
>>662
ttp://www.gnu.org/s/gawk/manual/html_node/Dynamic-Extensions.html
‚¶‚áƒ_ƒH«—ˆ“I‚É‚³‚ç‚ÉŠg’£‚³‚ê‚é‰Â”\«‚Í‚ ‚é‚Ý‚½‚¢‚¾‚¯‚Ç

665 F
Å‹ßawkcard‚ð’m‚Á‚ÄÀ‰E‚É’u‚¢‚Ä‚é‚Ì‚¾‚ªA“ú–{Œê”Å‚Á‚Ä‘¶Ý‚·‚é‚Ì‚¾‚낤‚©B

666 F
ttp://gauc.no-ip.org/awk-users-jp/blis.cgi/DoukakuAWK_271
‚±‚±‚É‘‚¢‚Ä‚ ‚é’Ê‚è‚É‚µ‚Ä‚à“ú–{Œê‚É–|–󂳂ê‚Ü‚¹‚ñ
‚Ç‚¤‚µ‚Ä‚Å‚·‚©H
ŠÂ‹«‚Í LinuxMint12 A GNU Awk 3.1.8 ‚Å‚·

667 F
>>666
‚»‚Ì’Ê‚è‚É‚â‚Á‚½‚ÆŒ¾‚¤‚Ì‚È‚çA‰½ŒÌpoƒtƒ@ƒCƒ‹‚ð’ñŽ¦‚µ‚È‚¢‚Ì‚©‚ËAƒ_ƒ~ƒAƒ“ŒNB

668 F
>>667
po‚Í쬂µ‚Ü‚µ‚½‚µAmo‚àŠ’è‚̃fƒBƒŒƒNƒgƒŠ‚É‚ ‚è‚Ü‚·B
po‚ÍŽ©•ª‚Å•ÒW‚µ‚Ä‚àA‚»‚̃TƒCƒg‚Ì“à—e‚ðƒRƒsƒy‚µ‚Ä‚àƒ_ƒ‚Å‚µ‚½B
$ cat gettext.po
#: gettext.awk:10
msgid "********** Count Prime Number **********"
msgstr " ‘f”‚𔂦‚é "
#: gettext.awk:14
msgid "2 is a prime number."
msgstr "2 ‚Í‘f”‚Å‚·B"
#: gettext.awk:24
msgid "%d is a prime number.\n"
""
msgstr "%d ‚Í‘f”‚Å‚·B\n"
$ ls ja_JP/LC_MESSAGES/
gettext.mo

669 F
Œ‹‰Ê‚Í‚±‚Ì’Ê‚è‚Å‚·B
$ LC_ALL=ja_JP gawk -f gettext.awk 10
********** Count Prime Number **********
2 is a prime number.
3 is a prime number.
5 is a prime number.
7 is a prime number.

670 F
‚¸‚¢‚Ô‚ñawk‚©‚ç—£‚ê‚Ä‚¢‚Ä‹v‚µ‚Ô‚è‚ÉŽg‚Á‚½‚ç
nawk‚É“ú–{Œê‚̃oƒO‚ª‚ ‚邱‚Æ‚É‚µ‚΂炭‹C‚©‚È‚©‚Á‚½
substr()‚Åutf-8‚̃eƒLƒXƒg‚ðØ‚èo‚·‚Æ‚¨‚©‚µ‚È’l‚É‚È‚é
gawk‚Å‚Í’¼‚Á‚Ä‚¢‚é

671 F
‚»‚à‚»‚àUTF-8‚ɑΉž‚µ‚Ä‚½‚Á‚¯

672 F
ttp://blog.livedoor.jp/corbie/archives/cat_94960.html
Žc”O‚È‚ª‚çAƒVƒtƒgJISAUTF-8—¼•û‚ųí‚É“®ì‚µ‚»‚¤‚ÈWindows”Ågawk‚ÍŒó•â‚Ì’†‚É‚ ‚è‚Ü‚¹‚ñ‚Å‚µ‚½B

673 F
Linux‚Å‚Í•’Ê‚É“®‚­‚ªc

674 F
ƒtƒ@ƒCƒ‹–¼‚ª"*.txt"‚̈ꗗ‚ðŽæ“¾‚·‚é‚Æ‚«A"\.txt"‚Ń}ƒbƒ`‚³‚¹‚é‚ÆA”CˆÓ‚̈ꕶŽš.(ƒhƒbƒg)‚ƉðŽß‚³‚ê‚Ä‚µ‚Ü‚¤‚ñ‚Å‚·‚ªA‚¢‚¢•û–@–³‚¢‚Å‚µ‚傤‚©H

675 F
GNU Awk 3.1.7‚¾‚ƃhƒbƒg‚Ƀ}ƒbƒ`‚µ‚½‚¯‚Ç‚»‚à‚»‚àawk‚̘bH
‹ï‘Ì“I‚ɃRƒ}ƒ“ƒh‚ª‚Ù‚µ‚¢‚È

676 F
º˜a‚Ì Šo‚¦‚½ƒAƒZƒ“ƒuƒ‰‚ÆCŒ¾Œê
‚±‚ꂪ‚ ‚Á‚½‚©‚ç
‚¢‚Ü‚¾‚ÉŽ©•ª‚ª‘¹‚È‹ÆŠE‚ŔтðH‚Á‚Ä‚é

677 F
>>676
‚»‚±‚©‚ç‚Š‚‚–‚‚És‚Á‚ăXƒ}ƒzƒAƒvƒŠŠJ”­‚È‚ç‚à‚¤ˆê‰Ôç‚¢‚½‚©‚à‚µ‚ê‚Ü‚¹‚ñ‚Ë‚—

678 F
”nŽ­‚É‚Í–³—

679 F
>>675
ls | awk '{ if( match($0,"\.txt") > 0) print $0 }'
ª‰ïŽÐ‚̃T[ƒoã‚Å‚±‚ñ‚ÈŠ´‚¶‚Ì‚±‚Æ‚â‚낤‚Æ‚µ‚Ä‚½‚ñ‚Å‚·‚ªA
ugawk: Œx: ƒGƒXƒP[ƒvƒV[ƒPƒ“ƒX `\.' ‚Í `.' ‚Æ“¯“™‚Ɉµ‚í‚ê‚Ü‚·v
‚ƃƒbƒZ[ƒW‚ªo—Í‚³‚êAƒhƒbƒg‚ª”CˆÓ‚̈ꕶŽšH‚ƉðŽß‚³‚ê‚Ä¢‚Á‚Ä‚¢‚Ü‚µ‚½‚ªA
Ž©ŒÈ‰ðŒˆ‚µ‚Ü‚µ‚½B(Ž©‘î‚ÌLinuxPC‚Å“®ìŠm”F‚µ‚Ü‚µ‚½BGAWK3.1.7‹y‚Ñ4.0.1)
"\.txt"‚Å‚Í–³‚­‚ÄA".txt"‚Å—Ç‚©‚Á‚½‚ñ‚Å‚·‚ËB
‚¨‘›‚ª‚¹‚µ‚Ü‚µ‚½B
‚à‚µ‚©‚µ‚½‚çA‰ïŽÐ‚̃T[ƒo(RHEL)‚ÌGAWK‚ªŒÃ‚­‚Ä‰ðŒˆ‚Å‚«‚Ä‚È‚¢‚©‚à‚µ‚ê‚Ü‚¹‚ñ‚ªB

680 F
>>679
match() ‚Ì‘æ“ñˆø”‚É•¶Žš—ñ‚ð—^‚¦‚½ê‡‚ÍŽ–‘O‚ɳ‹K•\Œ»‚Ö‚ÌŒ^•ÏŠ·‚ªs‚í‚ê‚邪A
‚»‚ÌۂɃGƒXƒP[ƒv‚ªŠO‚ê‚Ä /.txt/ ‚Æ“¯“™‚É‚È‚Á‚Ä‚µ‚Ü‚¤A ‚Æ‚¢‚¤‚±‚Æ‚©‚ÆB
‚‚܂è "\\.txt" ‚Æ‚·‚é‚©A ³‹K•\Œ»‚Ì /\.txt/ ‚ð—^‚¦‚ê‚΂悢B
The GNU Awk User's Guide ‚É‚à‚±‚ÌŒ»Û‚ɂ‚¢‚Ä‚Ìà–¾‚Í‚ ‚邪A
~ !~ ‰‰ŽZŽq‚ɂ‚¢‚Ä‚µ‚©G‚ê‚ç‚ê‚Ä‚¢‚È‚¢B
ttp://www.kt.rim.or.jp/~kbk/gawk-30/gawk_5.html#SEC32

681 F
gawk4.0.2•t‘®‚ÌŒ´”Å‚Å‚Ímatch‚Ìà–¾‚É‚à‚»‚Ì•ÓG‚ê‚ç‚ê‚Ä‚é‚ËB
http://www.gnu.org/software/gawk/manual/html_node/String-Functions.html#String-Functions
’N‚©‚±‚̃o[ƒWƒ‡ƒ““ú–{Œê‰»‚µ‚Ä‚È‚¢‚©‚ÈB

682 F
FIFO‚ÈŠ´‚¶‚Ìæ“ü‚êæo‚µ‚̃oƒbƒtƒ@‚ɂ͉½Žg‚¦‚΂¢‚¢H
‚Æ‚¢‚¤‚©A
Array‚ÅA‚½‚Æ‚¦‚ÎA[3] ‚©‚çA[8]‚܂ł̃f[ƒ^‚ðA[1]‚©‚çA[6]‚É“®‚©‚·‚ɂ͉½‚ªˆê”Ô‘‚¢H
‚Å‚«‚ê‚Δz—ñ‚Í‚P‚‚µ‚©Žg‚¢‚½‚­‚È‚¢‚Ì‚¾‚ªA–³—‚¾‚낤‚©c

683 F
‘¬‚³‚ð‹‚ß‚é‚È‚ç–ˆ“x‘S—v‘f‚¸‚ç‚·‚æ‚èA“Ç‚Ýo‚µˆÊ’u‚Æ‘‚«ž‚݈ʒu‚Ì“YŽšŽ‚Á‚Ä
ŠÇ—‚µ‚½•û‚ª‚½‚¢‚Ä‚¢‘¬‚¢

684 F
awk‚ɂ͘A‘z”z—ñ‚µ‚©‚È‚¢‚µ‚È

685 F
ƒŠƒ“ƒOƒoƒbƒtƒ@‚ʼn½‚Æ‚©‚È‚é‚Ȃ烊ƒ“ƒOƒoƒbƒtƒ@‚©‚È

686 F
>>682
BEGIN{
@QMAX=3
@QTopPos=0;QTailPos=0;QNum=0;
@deQ();
@enQ("1");deQ();
@enQ("a");enQ("b");enQ("c");enQ("x");deQ();deQ();deQ();deQ();
}
function enQ(PushVal){
@if (QNum+1 > QMAX){print "‚¨‚È‚©‚¢‚Á‚Ï‚¢"; return;}
@nextPos = (QTopPos+1) % QMAX;
@queue[QTopPos] = PushVal;
@QTopPos=nextPosQNum++;
}
function deQ(){
@if (QNum < 1){print "‚©‚ç‚Á‚Û"; return}
@QNum--;@TailVal=queue[QTailPos]
@QTailPos = (QTailPos +1) % QMAX;
@print TailVal;
@return TailVal;
}

687 F
ª‚ÌŒ‹‰Ê‚Í‚±‚ñ‚ÈŠ´‚¶B
>‚©‚ç‚Á‚Û
>1
>‚¨‚È‚©‚¢‚Á‚Ï‚¢
>a
>b
>c
>‚©‚ç‚Á‚Û
>>685‚Ì‘‚¢‚Ä‚¢‚郊ƒ“ƒOƒoƒbƒtƒ@ŽÀ‘•‚Å‚·B
enqueue,dequeue‰ñ”‚ª‘½‚¢‚Ȃ烊ƒ“ƒOƒoƒbƒtƒ@‚Å—Ç‚¢‚ÆŽv‚¤B
‘å’ï‚ÌꇂÍQMAX‚É‘å‚«‚È’l‚ðÝ’è‚·‚ê‚ÎŽ–‘«‚è‚éƒnƒY‚¾‚¯‚Ç
ãŒÀ‚ªŒˆ’è‚Å‚«‚È‚¢“™‚ÌŽ–‚ ‚ê‚Îdelete array‚ðŽg‚Á‚½’Pƒ‚È”z—ñŠÇ—‚©‚ÈB
‚½‚¾“Y‚¦Žš‚ª”’lãŒÀ‚ð’´‚¦‚È‚¢—l‚ÈH•v‚Í•K—v‚¾‚ËB

688 F
ƒŠƒ“ƒO‚Å‚àãŒÀ‚ð’è‚ß‚é‚Æ“ü—̓XƒgƒŠ[ƒ€‚ÌãŒÀ‚ª•s–¾‚Èꇂ܂¸‚¢‚±‚Æ‚É‚È‚é‚Ì‚ÅAŒ»Ý‚Í
A=“ü—ÍArray,CˆêŽž•ÛŠÇ,i,k,n,p
  k=1;C[0]=0;
  for(i=1;i<=A[0];i++){n=0;while(k<i && A[k++]=C[n+=1]);if(n){
  delete C[C[0]+1];C[0]-=n;p=0;while(C[p+=1]=C[n+=1]);}p=1;
  while(match(substr(A[i],p),re)){p+=RSTART-1;n=substr(A[i],p,RLENGTH);
  if(k<i){A[k++]=n;}else{C[C[0]+=1]=n;};p+=RLENGTH;}};n=1;
  while(A[k++]=C[n]){delete C[n++];};A[0]+=C[0]-1;C[0]=0;
‚ðŽg‚Á‚Ä‚¢‚éB
re=regexp‚Æ‚µ‚ÄAArray A‚Ɉê’v‚·‚éƒf[ƒ^‚ª‚ ‚ê‚Ú‚»‚ê‚ðŽæ“¾AŒ‹‰Ê‚ðArray A‚Éo—ÍAA[0]‚ɇŒv‚ª‹LÚB
‚±‚êˆÈãiƒR[ƒhƒTƒCƒYA‚ ‚é’ö“x‚Ì‘¬“xAƒƒ‚ƒŠ‚ÌŽg—p—Ê‚ð‹É—Í­‚È‚­j‚Æ‚¢‚¤ðŒ‚ÅÅ“K‰»‚Å‚«‚邾‚낤‚©c
‚¾‚ê‚©—Š‚ÞB
“ü—Í‚Æo—Í悪“¯‚¶‚Å‚àA•Ê‚Å‚àì“®‚·‚éƒR[ƒh‚Ȃ箂̂±‚Æ—Ç‚¢‚Ì‚¾‚ªc

689 F
‚±‚ê‚͂Ђǂ¢
ƒfƒoƒbƒO‚àŠg’£‚à–³—‚¶‚á‚Ë

690 F
Šî–{“I‚Ɉê“xì‚Á‚ÄŒã‚Í•K—v‚ɉž‚¶‚ăRƒsƒy‚¾‚ª‚ç‚ÈB‘¼‚É‚Í
function grep( o, re, p, B, this, a ){
B[0]=0;if(o~"-v"){while((getline v < p)>0){if(!match(v,re))B[B[0]+=1]=v;}return B[0];};
if(o~"-o"){while((getline v < p)>0){a=v;while(match(a,re)){B[B[0]+=1]=substr(a,RSTART,RLENGTH);
a=substr(a,RSTART+RLENGTH);}};return B[0];};while((getline v < p)>0){if(match(v,re))B[B[0]+=1]=v;}return B[0];
}
‚È‚ñ‚©‚à—Ç‚­Žg‚¤Bgrep("-o","pattern","/var/log",data);‚Ý‚½‚¢‚ÈŠ´‚¶‚ÅB‘O‚Ì‚Íagrep("-v",pattern,B,C)‚̈ꕔ•ªB
“ú‚²‚ë‚̃ƒ“ƒe‚Å‚¿‚å‚Á‚Æ‚µ‚½Žèì‹Æ‚¶‚á‚ß‚ñ‚Ç‚¢‚Ì‘g‚Þ‚Æ‚«‚ÉA‚Ù‚Ú”•ª‚Å‘g‚Ý‚ ‚ª‚é‚Ì‚ªŠy‚È‚ñ‚¾‚æB
ƒTƒuƒvƒƒZƒX‚Æ‚µ‚ÄgrepŒÄ‚Ño‚·‚Ì‚ªƒRƒXƒg‚©‚©‚鎞‚Æ‚©Aperl‚ª”j‘¹‚µ‚½ó‹µ‚ł̃ŠƒJƒoƒŠ[ƒXƒNƒŠƒvƒg‚Æ‚µ‚Ä‘g‚ñ‚¾‚Ì‚ªŒ³‚¾‚¯‚ÇB
ƒJ[ƒlƒ‹‚³‚¦¶‚«‚Ä‚¢‚ê‚ÎŒã‚ÍawkƒoƒCƒiƒŠ—¬‚µž‚ß‚ÎŽg‚¦Ash‚ª”¼•ªŽ€‚ñ‚Å‚¢‚Ä‚à‚È‚ñ‚Æ‚©“®‚­‚µB

691 F
>>688
BEGIN{
@QMAX=9007199254740991
@QTopPos=QTailPos=QNum=0;
@hitTop=0;
@A[++z]="hoge";
@A[++z]="1 2 3 4 5";
@A[++z]="fuga";
@A[0]=z;
@for(i=1;i<=A[0];i++){
@@p=1;
@@while(match(substr(A[i],p),/[0-9]+/)){
@@@p+=RSTART-1;
@@@enQ(substr(A[i],p,RLENGTH));
@@@p+=RLENGTH;
@@}
@@if(QNum>0){
@@@while(QNum && hitTop<i)A[++hitTop]=deQ();
@@}else{
@@@delete A[i];
@@}
@};
@if(QNum>0) while(QNum)A[++A[0]]=deQ();
@for(z=1;z<=A[0];z++)print "A[" z "]:" A[z];
}

692 F
691‚Ì‘±‚«
‚¿‚È‚Ý‚ÉAA[1]`A[A[0]]‚ðgrep‚µ‚ÄŒ‹‰Ê‚ÍA[1]`A[?]‚É–ß‚·ƒXƒNƒŠƒvƒg‚ËB
•¡”Œƒ}ƒbƒ`‚·‚鎖‚ª‚ ‚é‚Ì‚Å–¢ˆ—s‚ðã‘‚«‚µ‚È‚¢‚悤‚ɃLƒ…[Žg‚Á‚Ä‚éB
function enQ(PushVal){
@if (QNum+1 > QMAX){print "Queue Overflow"; exit;}
@nextPos = (QTopPos+1) % QMAX;
@QBody[QTopPos]=PushVal;
@QTopPos=nextPos
@QNum++;
}
function deQ(){
@if (QNum<1){print "Illigal dequeue"; exit;}
@QNum--;
@TailVal=QBody[QTailPos];
@delete QBody[QTailPos];
@QTailPos=(QTailPos +1) % QMAX;
@return TailVal;
}
ƒŠƒ“ƒOƒoƒbƒtƒ@‚ÌãŒÀ’´‚¦‚½‚çI—¹‚³‚¹‚Ă邯‚Ç>>688‚ÌŽÀ‘•‚àãŒÀ’´‚¦‚½‚çƒoƒO‚邵‹–‚µ‚ÄB
Œv‚Á‚Ä‚È‚¢‚¯‚ǃ‹[ƒv‚ª‚È‚¢•ª‘‚¢”¤BƒR[ƒhƒTƒCƒY‚Í‚¨Ž@‚µB
ƒƒ‚ƒŠ‚ÍA[]‚Ƀf[ƒ^•ø‚¦‚Ă鎞“_‚ŃAƒEƒg‚ÈŠ´‚¶‚¾‚¯‚ÇA[]‚ð“K‹XÁ‚·‚悤‚É‚µ‚Æ‚¢‚½B
o—Íæ‚ð•Ê‚É‚µ‚½‚¢‚È‚çA[]‚ÉdeQ()‚¹‚¸•Ê•Ï”‚É‚·‚ê‚΂¨‚‹B
‚±‚ê‚Å—Ç‚¢H

693 F
>QMAX=9007199254740991
ƒƒƒ^www
‰´‚Ì‚àŠm‚©‚Éwhile(C[p+=1]=C[n+=1]);‚Ì•”•ª‚Å•ÛŽ‚µ‚Ä‚é‚Ì‚·‚ׂÄÁ”‚¾‚¯ã‚Ɉړ®‚³‚¹‚Ä‚é‚Ì‚ª–³‘Ê‚È‚Ì‚Å
‚»‚̃‹[ƒv‚ª–³‚¢•ª‚ÍŠm‚©‚É‘‚¢‚Í‚¸B
‚ ‚ÆA’p‚¸‚©‚µ‚È‚ª‚çq‚Ë‚½‚¢‚Ì‚Å‚·‚ªA‰´>>688‚ÌŽÀ‘•‚ÅãŒÀ’´‚¦‚½‚çƒoƒO‚é‚ðkwsk
‚È‚ñ‚©Œ©—Ž‚Æ‚µ‚Ä‚½‚Ì‚©¡X‚È‚ª‚çS”z‚É‚È‚Á‚Ä‚«‚½B
Ìì‚Á‚½‚â‚‚Ȃñ‚ÅAŒ‹\‚È•p“xŽg‚Á‚Ä‚«‚½‚Ì‚¾‚ª¡‚܂ŃoƒO‚É‹C‚©‚È‚©‚Á‚½
‚µ‚©‚µƒf[ƒ^‚ðƒƒ‚ƒŠã‚É“WŠJ‚·‚é‚©‚ç‚Ç‚¤‚µ‚Ä‚àãŒÀ‚ªo‚Ä‚­‚é‚Èc
awk‚Å10GB‚®‚ç‚¢‚̈µ‚¤Žž‚Ígetline‚Å‚È‚ñ‚Æ‚©‚Ȃ邯‚ÇA‚â‚͂胃‚ƒŠƒ}ƒbƒv‚âƒ|ƒCƒ“ƒ^‚ªŽg‚¦‚½‚ç•Ö—˜‚¾‚æ‚È‚Ÿ
ƒpƒbƒ`ì‚Á‚½‚çŽù—v‚ ‚é‚©‚ÈH

694 F
>>693
691A‚¿‚å‚Á‚Æ’ù³B–³‘ʂɃLƒ…[Žg‚¤•ªAŒ³ƒXƒNƒŠƒvƒg‚©‚ç—ò‰»‚µ‚Ä‚½B
> @@@p+=RSTART-1;
>-@@@enQ(substr(A[i],p,RLENGTH));
>+@@@if(hitTop+1<i){
>+@@@@A[++hitTop]=substr(A[i],p,RLENGTH)
>+@@@}else{
>+@@@@enQ(substr(A[i],p,RLENGTH));
>+@@@}
> @@@p+=RLENGTH;
‚ ‚ÆA—Ç‚­l‚¦‚½‚ço—Íæ‚ð•Ê‚É‚·‚é‚È‚çA‚»‚à‚»‚àƒLƒ…[•s—vB
ƒoƒO‚Á‚Ä‚Ì‚Í687‚Å”’lãŒÀ‰]X‚Æ‘‚¢‚½‚Æ‚¨‚èA
hC[0]+=1h‚ªawk‚Ì®”‚̸“xŒë·‚È‚µ‰‰ŽZ‰Â”\ãŒÀ‚ðl—¶‚µ‚Ä‚¢‚È‚¢‚¾‚¯B
‚Ç‚Ìawk‚à‘½•ª‚»‚¤‚¾‚ÆŽv‚¤‚¯‚ÇAŽèŒ³‚̊‹«‰º‚Å‚ÌŽÀsŒ‹‰Ê«
C:\>gawk --version
GNU Awk 3.1.7(windows special Nov 24 2009)
C:\>gawk "BEGIN{print 9007199254740990+1}" nul
9007199254740991
C:\>gawk "BEGIN{print 9007199254740991+1}" nul
9007199254740992
C:\>gawk "BEGIN{print 9007199254740992+1}" nul
9007199254740992
ŽÀÛ‚Íihdd‚⃃‚ƒŠ‚ªæ‚ÉŽ€‚Ê‚Ì‚Åj
ˆês‚Å‚±‚ꂾ‚¯³‹K•\Œ»‚ªhit‚·‚鎖‚ÍŽ–ŽÀã–³‚¢‚µA
‰¼‚É”­¶‚µ‚Ä‚àŒŸõŒ‹‰Ê‚ª’ׂê‚邾‚¯‚ÅA‹C•t‚©‚È‚¢”¤B

695 F
>9007199254740992
—˜_ãA8192ƒyƒ^ƒoƒCƒg‚Ì“¯‚¶ƒf[ƒ^[aaa...]‚Åregexp="."‚Æ‚·‚ê‚ÎA”­¶‚·‚é‚Èc
IEEE 754‚Ì52bit§ŒÀ‚¾‚©‚çA‚±‚êˆÈã‚Ì‚Å‚©‚¢”Žšˆµ‚¤‚È‚çbig numbert‘Ήž‚̃‰ƒCƒuƒ‰ƒŠ‚©,
"bc -q" |& ‚Å“®‚©‚·‚©AxgawkAdnawk‚ ‚½‚èŽg‚¤‚ׂ«‚¾‚È‚Ÿ
Ì’N‚©‚ªbignum‚ÌawkƒXƒNƒŠƒvƒg‘‚¢‚Ä•ú—¬‚µ‚Ä‚¢‚½Šo‚¦‚ª‚ ‚é‚Ì‚¾‚ªA
ƒOƒOƒb‚Ä‚àŒ©‚‚©‚ç‚ñBŽèŒ³‚É‚ ‚é‚̂̓rƒbƒg‰‰ŽZ‚Ì‚â‚‚¾‚¯‚¾‚í
‚¢‚‚©‚»‚ꂾ‚¯‚̃f[ƒ^‚ðƒƒ‚ƒŠã‚É•ÛŽ‚Å‚«‚éƒ}ƒVƒ“‚ðˆµ‚Á‚Ä‚Ý‚½‚¢‚à‚Ì‚¾c

696 F
awk‚Á‚Äabs‚Æ‚©acos‚È‚Ç‚ÌŠî–{“I‚ÈŽZpŠÖ”‚ª—pˆÓ‚³‚ê‚Ä‚È‚¢‚ñ‚Å‚·‚Ë
¡Œã‚àŽÀ‘•‚³‚ê‚邱‚Æ‚Í‚È‚¢‚ñ‚Å‚µ‚傤‚©H
ƒpƒCƒv‚ŃTƒNƒb‚Ƃ‚Ȃ¢‚Ńƒ“ƒ‰ƒCƒ“‚ň—‚·‚é‚Ì‚Éd•ó‚µ‚Ä‚½‚ñ‚Å‚·‚ªEEE
‘ã‚í‚è‚Æ‚È‚é‚ÆA‰½Žg‚¤‚Ì‚ª‚æ‚낵‚¢‚Å‚·‚©H
‚Å‚«‚ê‚Îperl‚ÍŽg‚¢‚½‚­‚È‚¢‚Å‚·i‚Ç‚¤‚µ‚Ä‚àD‚«‚É‚È‚ê‚È‚¢

697 F
abs‚ÍŽ©•ª‚Å‘‚¯‚΂¢‚¢‚µAacos(x)‚Íatan2(x, ã(1.0 - x*x))‚Æ‘‚¯‚é‚©‚çA
‚Ç‚¿‚ç‚àŠî–{“I‚Å‚Í‚È‚¢‚Æ”»’f‚µ‚Ä‘g‚Ýž‚Ý‚¶‚á‚È‚¢‚ñ‚¾‚ÆŽv‚¤‚¯‚ÇB
Python‚©Ruby‚Å‚¢‚¢‚ñ‚¶‚á‚È‚¢H@ƒƒ“ƒ‰ƒCƒi[Œü‚«‚Å‚Í‚È‚¢‚¯‚ÇB

698 F
>>696
ƒ‰ƒCƒuƒ‰ƒŠ(?)‚ðE‚Á‚Ä—ˆ‚Ä‚Í?

699 F
>>696
•K—v‚ÈŠÖ”’l‚ðŒvŽZ‚·‚邾‚¯‚̃vƒƒOƒ‰ƒ€‚ðC‚Åì‚Á‚Ä‚¨‚¢‚½‚ç?

700 F
Ì‚»‚ê‚ŃxƒNƒgƒ‹‰‰ŽZ‚µ‚Ä—V‚ñ‚¾‚È

701 F
Ruby‚Í‚»‚±‚»‚±ƒƒ“ƒ‰ƒCƒi[‚à‘‚¯‚銴‚¶‚ª‚·‚éAawk‚âPerl‚Ù‚Ç‚¶‚á‚È‚¢‚¯‚Ç‚Ë
Python‚Í—¬Î‚ɃR[ƒh‹N‚±‚³‚È‚¢‚Æh‚¢‚±‚Æ‚ª‘½‚¢‚ª

702 F
awk‚Åmatlab‚Ý‚½‚¢‚ȃxƒNƒgƒ‹‰‰ŽZ‚Å‚«‚é‚悤‚É‚µ‚Ä‚Ù‚µ‚¢

703 F
awk‚ŃNƒ‰ƒX‚ðŽg‚¦‚é‚悤‚É‚µ‚Ä‚Ù‚µ‚¢

704 F
awk‚Å‘S‚Ä‚Ì–‚–@­—‚ð‹~‚Á‚Ä‚Ù‚µ‚¢

705 F
awk‚³‚ñ‚Í–‚—

706 F
Awk++
http://awk.info/?doc/dsl/awkplusplus.html
OO in AWK++
The awk++ language provides object oriented programming for AWK that includes:
classes
class properties (persistent object variables)
methods
inheritance, including multiple inheritance
http://lawker.googlecode.com/svn/fridge/lib/bash/awk++/version21/awkpp21.zip

707 F
ƒfƒoƒbƒO‘å•Ï‰ß‚¬‚ÄŽ€‚Ê‚é
$ cat witch.awkpp
class Witch {
var spell
method new() { spell = "mahalic mahalita" }
method perform() { print spell }
}
class Samantha : Witch {
method perform() { print "twitch" }
}
BEGIN {
# wife = Witch.new() ƒGƒ‰[—vˆös
wife = Samantha.new()
wife.perform()
}
$ gawk -f awkpp -r witch.awkpp
gawk: -:10: () ƒGƒ‰[—vˆös
gawk: -:10: ^ syntax error
gawk: -:10: () ƒGƒ‰[—vˆös
gawk: -:10: ^ •\Œ»‚Ì char '?' ‚Í•s³‚Å‚·B

708 F
size: 656 byte, supports -o -v option. Array A and B can be the same (NEW)
function xagrep( o, re, A, B, this, a, i,k ){
k=0;B[0]=A[0];if(o~"-v"){for(i=1;i<=A[0];i++){if(!match(A[i],re)) B[k+=1]=A[i];}B[0]=k;return k};
if(o~"-o"){B[B[0]+1]=0;for(i=1;i<=A[0];i++){a=A[i];if(i==k){i=i-B[B[0]+1]+1;B[B[0]+1]=k;k=B[0]+2;
while(i<=B[B[0]+1]){B[i++]=B[k];delete B[k++];}i=B[B[0]+1];k=i;B[B[0]+1]=0;}while(match(a,re)){
if(i>k){B[k+=1]=substr(a,RSTART,RLENGTH);}else{B[B[0]+1+(B[B[0]+1]+=1)]=substr(a,RSTART,RLENGTH);
k++}a=substr(a,RSTART+RLENGTH)}}if(i<k){i=k-i;k=B[0]+1;B[0]=i+B[B[0]+1];while(i<B[0])B[i+=1]=B[k+=1];
while(i<k)delete B[i+=1];}return B[0]}for(i=1;i<=A[0];i++){if(match(A[i],re))B[k+=1]=A[i];}B[0]=k;return k;
}
‚±‚êˆÈãí‚ê‚é‚Æ‚±‚ë–³‚¢‚©‚ÈH@
‚‘¬‰»{ƒTƒCƒY—Dæ‚ÅA•Ï”‚Í‚Å‚«‚邾‚¯Žg‚¤”‚ð­‚È‚­‚Æ‚ÌðŒ‚Å

709 F
>>708
‚»‚Ì3‚‚ÌðŒ‚Ì—Dæ“x‚ª‚í‚©‚ç‚ñ‚ÈB
Œ‹\“¯‚¶•”•ªŽ®‚ª‚ ‚é‚Ì‚Å•Ï”‚É“ü‚ꂽ•û‚ª•Ï”‚Í‘‚¦‚邯‚Ç’Z‚­‚Ȃ邵
ꇂɂæ‚Á‚Ä‚Í‘¬“x‚à‘¬‚¢‚Æ‚©‚ ‚è‚»‚¤‚¾‚¯‚Ç‚Ç‚¤‚È‚ñ?
—Ⴆ‚ÎB[0]‚Í“Á•Ê‚È—p“r‚Á‚Û‚¢‚¯‚Çx‚Æ‚©1•¶Žš•Ï”‚É‚µ‚Äreturn‚Ì’¼‘O‚É
‘‚«–ß‚µ‚½•û‚ª•¶Žš”‚͉҂°‚éB
‚ ‚Æׂ©‚¢‚ªhoge+=1‚æ‚è++hoge‚Ì•û‚ª1•¶Žš’Z‚¢‚Æ‚©A‚¢‚ç‚È‚¢u;v‚ª
Žc‚Á‚Ä‚é‚Æ‚©‹l‚ß‚ªŠÃ‚¢‚Æ‚±‚낪‚Ü‚¾‚ ‚é‚ËB

710 F
ˆÈ‰º‚̂悤‚ȃf[ƒ^‚̈—‚ɂ‚¢‚ÄŽ¿–â‚¢‚¢‚Å‚µ‚傤‚©B
$1‚ÉŒo‰ßŽžŠÔiŽžjA$2‚Éu‘¬“xv‚ª‚ ‚ê‚Î$3‚Ì”’l‚Í‘¬“x‚ðA$2$3‚É
uup avudown av‚È‚Ç‚Æ‚ ‚ê‚΂»‚ÌŽž‚Å‚Ìs“®‚ðŽ¦‚µ‚Ü‚·B
‚±‚̃f[ƒ^‚©‚çupAdown‚Ìꊂð‹‚ß‚½‚¢‚ÆŽv‚¢‚Ü‚·B
‚‚܂èA‰º‚Ì—á‚ňړ®ŠJŽn‚©‚ç‚Ì‹——£3‚Åup aA‹——£3.5‚Åup bA‚Æ‚¢‚¤‹ï‡‚Å‚·B
Œo‰ßŽžŠÔ‚Æ‘¬“x‚©‚çꊂðŒvŽZ‚·‚邾‚¯‚Å‚·‚ªB‘¬“x‚ð•ÏX‚·‚éƒ^ƒCƒ~ƒ“ƒOE
‰ñ”‚Í•s’èA‘¬“xƒf[ƒ^‚Æs“®ƒf[ƒ^‚Í‚Æ‚à‚ÉŒo‰ßŽžŠÔ‡‚É‹L˜^‚³‚ê‚Ä‚¢‚Ü‚·B
‘¬“x•ÏX‚ð‚Ç‚¤ˆµ‚¦‚΂¢‚¢‚Ì‚©A‚¿‚å‚Á‚Æ“ª‚ª‰ñ‚è‚Ü‚¹‚ñB
---Œ³ƒf[ƒ^—á---
0 ‘¬“x 10
50 ‘¬“x 20
200 ‘¬“x 25
30 up a
35 up b
40 down a
40 down b
50 up a
70 down a
200 up c
250 down c
---ˆ—Œã---
3 up a
3.5 up b
4 down a
4 down b
5 up a
6 down a
12.5 up c
14.5 down c

711 F
‹^–â‚ð’ñŽ¦B
$1‚ªí‚ÉŽž‚Å$2‚ª‘¬“x‚Ì‚Æ‚«‚Ì$3‚ª‘¬“x‚È‚çA
30 up a‚Ì‚Æ‚«‚É30 * 10‚Å300 up a‚É‚È‚é‚ñ‚¶‚á‚È‚¢‚¾‚낤‚©B
“¯‚¶‚悤‚ÉA70 down a‚Ì‚Æ‚«‚É50 * 10 + (70 - 50) * 20‚Å900 down a‚É‚È‚é‚ñ‚¶‚á‚È‚¢‚¾‚낤‚©B
$3‚ª‘¬“x(’PˆÊŽžŠÔ“–‚½‚è‚̈ړ®—Ê)‚Å‚Í‚È‚­’PˆÊˆÚ“®—Ê“–‚½‚è‚ÌŠ—vŽžŠÔ‚È‚Ì‚Å‚ ‚ê‚ÎA
30 up a‚Å30 / 10 = 3A70 down a‚Å50 / 10 + (70 - 50) / 20 = 6‚É‚È‚é‚ñ‚¾‚¯‚Ç‚ËB

712 F
ŽÀ‘•‚µ‚Ä‚Ý‚½B‘¬“x‚ª“r’†‚Éo‚Ä‚«‚Ä‚à‚¢‚¢‚悤‚Épos‚𖈉ñŒvŽZ‚·‚é‚©‚çŒø—¦ˆ«‚¢‚¯‚ÇB
--
BEGIN {
sCount = 0;
}
$2 == "speed" {
sTime[sCount] = $1;
sSpeed[sCount] = $3;
++sCount;
next;
}
{
pos = 0;
for (ic = 1; ic < sCount; ++ic) {
if (sTime[ic] > $1) break;
pos += (sTime[ic] - sTime[ic - 1]) / sSpeed[ic - 1];
}
pos += ($1 - sTime[ic - 1]) / sSpeed[ic - 1];
print pos, $2, $3;
}

713 F
>>711
‚·‚Ý‚Ü‚¹‚ñA‘OŽÒ‚Å‚·‚ËB‚È‚ñ‚¾‚낤A’p‚¸‚©‚µ‚¢B
>>712
‚È‚Ì‚ÅAƒAƒNƒVƒ‡ƒ“•”‚Ì / ‚ð * ‚É•Ï‚¦‚ê‚΂悳‚»‚¤‚Å‚·B
‚¨“ñ•ûA‚ ‚肪‚Æ‚¤‚²‚´‚¢‚Ü‚·B

714 F
awk‚É‚©‚í‚铯“™‚Ì‚à‚Ì‚ ‚è‚Ü‚·H

715 F
python

716 F
>>715
awk‚Ý‚½‚¢‚ÉŽg‚¢ŸŽè‚¢‚¢‚Ì‚©‚ÈH

717 F
—Ç‚¢‚Å‚·‚æ

718 F
>>717
‚ ‚肪‚Æ‚·B•×‹­‚µ‚Ä‚Ý‚Ü‚·

719 F
‚Í‚¢

720 F
g”CˆÓ‚Ì‹L†h‚ðŠÜ‚ñ‚¾ƒVƒFƒ‹•Ï”‚ðawk‚É“n‚·‚±‚Ƃ͉”\‚Å‚·‚©H‚½‚Æ‚¦‚Î
[user@localhost ~]$ var='hoge'
[user@localhost ~]$ echo "hoge" | awk -v var="$var" '
$0 ~ var {print var}
END {print var}
'
hoge
hoge
‚±‚±‚ÅAvar‚É$‚ðŠÜ‚Ü‚¹‚é‚Æ
[user@localhost ~]$ var='hoge$fuga'
[user@localhost ~]$ echo "hoge" | awk -v var="$var" '
$0 ~ var {print var}
END {print var}
'
hoge$fuga
‚Æ‚¤‚Ü‚­ƒ}ƒbƒ`‚µ‚Ü‚¹‚ñ‚Å‚µ‚½BvarŽ©‘Ì‚Í“n‚³‚ê‚Ä‚¢‚é‚Í‚¸‚Å‚·‚ªA‰½‚ªŒ´ˆö‚Å‚µ‚傤‚©H

721 F
>>720
‚¢‚¿‚¬‚傤‚߂̂Ђ¾‚肪‚í‚Ì var ‚ÍA‚Ђ傤‚©‚Ì‚³‚¢‚É
‚¹‚¢‚«‚Ђ傤‚°‚ñ‚Ö‚Ì‚©‚½‚Ö‚ñ‚©‚ñ‚ª‚¨‚±‚È‚í‚ê‚éB
$0 ~ /hoge$fuga/ {print "hoge$fuga"}
END {print "hoge$fuga"}
‚ß‚½‚à‚¶‚Æ‚È‚Á‚Ä‚µ‚Ü‚¤‚à‚Ì‚ÍA‚¶‚º‚ñ‚ ‚é‚¢‚Í‚±[‚Ç‚Ì‚È‚©‚Å
‚¦‚·‚¯[‚Õ‚·‚é‚Ђ‚悤‚ª‚ ‚éB

722 F
~(ƒ`ƒ‹ƒ_)‚̉E•Ó‚ͳ‹K•\Œ»‚Æ‚µ‚ĉðŽß‚³‚ê‚é‚©‚çA"hoge" ~ /hoge$fuga/ ‚Ń}ƒbƒ`‚·‚é‚킯‚ª‚È‚¢B
‹t‚É”J‚ëA"hoge$fuga" ~ /hoge/ ‚È‚çƒ}ƒbƒ`‚·‚éB

723 F
>>720
>721‚à>722‚à‚Ç‚¿‚ç‚àŒ´ˆöB‚â‚肽‚¢‚±‚Æ‚ð‚æ‚­®—‚µ‚悤B

724 F
‚·‚¢‚Ü‚¹‚ñAecho "hoge"‚Å‚Í‚È‚­echo "$var"‚Å‚µ‚½B
‚½‚¾AŒ‹‰Ê‚Í>>720‚Æ“¯‚¶‚Å‚·B
—v‚Í“ü—̓tƒ@ƒCƒ‹“à‚Ìuƒƒ^•¶Žšž‚Ý‚Ì”CˆÓ‚Ì•¶Žš—ñv‚ðA•Ê‚Ìuƒƒ^•¶Žš‚Ɖüsž‚Ý‚Ì”CˆÓ‚Ì•¶Žš—ñv‚Å’uŠ·‚·‚éA
‚Æ‚¢‚¤‚Ì‚ðƒƒ^•¶Žš‚̃GƒXƒP[ƒv“™‚Ì–Ê“|‚Ȉ—‚ð‚¹‚¸‚ɃTƒNƒb‚Æ‚â‚肽‚¢‚Ì‚Å‚·‚ªA‚Å‚«‚Ü‚·‚©H

725 F
ÑØ
—\‚ßuƒƒ^•¶Žš‚ÆŒ¾‚Á‚Ä‚à $ ‚µ‚©o‚Ä‚±‚È‚¢v‚Æ‚©”»‚Á‚Ä‚é‚È‚ç‘債‚½‚±‚Æ–³‚¢‚¯‚Ç
ˆê”ʉ»‚·‚ê‚΂·‚é‚Ù‚Ç–Ê“|‚É‚È‚é

726 F
>>725
‚â‚Í‚è‚»‚¤‚Å‚·‚©B
¡‚Ü‚Å‚±‚¤‚¢‚Á‚½ˆ—‚Ísed‚Å‚µ‚±‚µ‚±ƒGƒXƒP[ƒv‚µ‚Ä‚â‚Á‚Ä‚½‚ñ‚Å‚·‚ªA‚¢‚¢‰ÁŒ¸–Ê“|‚É‚È‚Á‚½‚Ì‚ÅA
‚½‚Æ‚¦‚Îfgrep‚Ý‚½‚¢‚ɳ‹K•\Œ»‚ðƒIƒt‚É‚µ‚Ĉ—‚·‚é•û–@‚Í‚È‚¢‚©‚Æ’T‚µ‚Ä‚¢‚é‚ñ‚Å‚·‚ªA
awk‚Å‚Í–³—‚Å‚·‚©EEEB

727 F
>>726
’P‚Ɉê’v‚Ȃ糋K•\Œ»‚È‚ñ‚©Žg‚킸‚É”äŠr‚·‚ê‚΂¢‚¢‚¶‚á‚ñB
fgrep‚ÅŽ–‚ª‘«‚è‚é‚Ì‚È‚çawk‚©‚çfgrep‚ð‹N“®‚·‚ê‚΂¢‚¢‚¶‚á‚ñB

728 F
>>726
fgrep‚È‚ç index()ŠÖ”‚¶‚á‚È‚¢‚Ì?

729 F
>>727
„’P‚Ɉê’v‚Ȃ糋K•\Œ»‚È‚ñ‚©Žg‚킸‚É”äŠr‚·‚ê‚΂¢‚¢‚¶‚á‚ñB
ˆÓ–¡‚ª•ª‚©‚ç‚È‚¢‚ñ‚Å‚·‚ªAawkã‚̘b‚Å‚·‚æ‚ËH
>>728
index()‚̈ø”‚Í•¶Žš—ñ‚¾‚©‚çA‚±‚ê‚ð‚¤‚Ü‚­Žg‚¦‚ΖړI‚̈—‚ª‚Å‚«‚éEEE‚Ì‚©‚ÈH
‚Å‚à‚È‚ñ‚©awk‚Å‚²‚¿‚傲‚¿‚å‚â‚é‚æ‚èAƒƒ^•¶Žš‚ðƒGƒXƒP[ƒv‚·‚é‘Oˆ—‚ð‚©‚Ü‚·‚È‚è
‰½‚Ȃ肵‚½‚Ù‚¤‚ª‘f’¼‚È‹C‚ª‚µ‚Ä‚«‚½EEEB‚½‚Æ‚¦‚΂±‚ñ‚ÈŠ´‚¶‚Å
$ var='hoge$fuga'
$ var2=$( echo "$var" | sed 's/\$/\\\\$/g' )@©ƒGƒXƒP[ƒvˆ—
$ echo "$var" | awk -v var="$var2" '
$0 ~ var {print var}
END {print var}
'
hoge\$fuga
hoge\$fuga

730 F
/bin/sh‚Å‚²‚¿‚傲‚¿‚å‚â‚é‚Ì‚ªD‚Ý‚È‚çAawk‚àfgrep‚àŽg‚킸Acase•¶‚Å‚â‚è‚á‚¢‚¢‚ñ‚¶‚á‚È‚¢‚ÌB

731 F
>>729
•¶Žš—ñ‚Ì”äŠr‚Í“™†‚Å‚Å‚«‚é‚Á‚Ä”FŽ¯‚Í‚È‚¢‚Ì?

732 F
>729
‚¢‚âA‚»‚Ì•û–@‚Å‚àŒ‹‹Ç ' ‚̓GƒXƒP[ƒv‚ª•K—v‚Å‚µ‚åB
ƒ_ƒCƒŒƒNƒg‚ɃVƒFƒ‹•Ï”‚É“ü‚ê‚é•û–@‚©A
ƒtƒ@ƒCƒ‹‚È‚Ç‚É“f‚«o‚µ‚Ä‚¨‚­•û–@‚Ì•û‚ªˆÀ’èB
‚Ü‚Ÿ‚»‚ê‚Å‚à‰üs‚Æ‚©§Œä•¶Žš“ü‚ê‚ç‚ê‚é‚Æ‚à‚É‚å‚éꇂª‚ ‚邯‚Ç‚ÈB

733 F
‚»‚±‚Ü‚Å‚ß‚ñ‚Ç‚­‚³‚­‚È‚Á‚½‚çperl‚Æ‚©ruby‚Æ‚©Žg‚Á‚½•û‚ªŠy‚¾‚¼w

734 F
‰½‚Å gawk -f ‚Æ‚©Žg‚킸ƒƒ“ƒ‰ƒCƒi[‚ÉS‚é‚Ì‚©‚Ë‚¥

735 F
>>732
’†ŠØƒtƒ@ƒCƒ‹‚ðì‚é‚Ì‚ÍîŽã‚ÌŽdŽ–iƒhƒ„Šç
>>734
ƒƒ“ƒ‰ƒCƒi[ƒfƒBƒX‚Á‚Ä‚ñ‚ÌH

736 F
#
# text converter ( Mac to MS-DOS on Windos/MS-DOS machine)
# convert CR to CR+LF
#
BEGIN{ RS = "\r" }
{ print }

737 F
#
# Line(s”)‚𔂦‚é
#
END { FNR }

738 F
# text to html converter
# usage: awk -f txt2htm.awk infile1.txt > outfile2.html
BEGIN{
print("<html>"); print("<head>")
print("<titile> My favorite URLs </titile>")
print("</head>"); print("<h1> </h1>"); print("<body>");
}
/^[:space:]*http/ { print "<A HREF=\""$1"\">"$1"</A><BR>"}
END{
print("</body>")
print("</html>")
}

739 F
awk 1 infile1 > outfile2.txt

740 F
# awk -f add.awk
BEGIN {
  s1 = "323524855"
  s2 = "4972560"
  reverse(a2, s2)
  size = reverse(a1, s1) # s1 > s2
  carry = 0
  for(k = 1; k <= size; k++) { # s1 > s2
    d = a1[k] + a2[k] + carry
    if(d >= 10) {
      e[k] = d - 10
      carry = 1
    } else {
      e[k] = d
      carry = 0
    }
  }
  if(carry == 1) {
    e[k] = 1
    size = k
  }
  g = produce_string(e, size)
  printf("%s + %s = %s\n", s1, s2, g)
  printf("%f\n", s1 + s2)
  exit
}

741 F
# >>740‚̂‚«
function reverse(a, s, k, i) {
  k = 1;
  size = length(s)
  for(i = size; i >= 1; i--) {
    a[k++] = substr(s, i, 1)
  }
  return size
}
function produce_string(a, size, i) {
  g = ""
  for(i = size; i >= 1; i--) {
    g = g a[i]
  }
  return g
}

742 F
function produce_string(a, size, g, i) {

743 F
# usage: awk -f grep.awk char1 file1 file2
BEGIN{
pattern = ARGV[1]
ARGV[1] = ""
}
$0 ~ pattern {print($0" File name=" FILENAME)}

744 F
$ echo 10 20 30 | awk '{for(i=0;i<4;)print _$++i}'
10
20
30
_$++i‚Å‚à$++i‚Å‚à‚Ç‚¿‚ç‚Å‚à‚¢‚¯‚é‚Ì‚Å‚·‚ªAƒAƒ“ƒ_[ƒXƒRƒA‚ª•t‚¢‚ĉ½ŒÌ‘åä•v‚È‚Ì‚Å‚µ‚傤‚©H

745 F
‚·‚¢‚Ü‚¹‚ñA‚í‚©‚è‚Ü‚µ‚½
‹ó‚Ì•Ï”_‚Æ$++i‚ÌŒ‹‰Ê‚ªˆê‚É‚È‚Á‚Ä‚½‚¾‚¯‚È‚ñ‚Å‚·‚Ë

746 F
’P‚ÉŽ®‚ð•À‚ׂé‚Æ•¶Žš—ñ˜AŒ‹‚É‚È‚éA‚Ìã©‚©

747 F
•ÛŽç
‚Ä‚©”¼”N‹ß‚­‘‚«ž‚Ý‚ª–³‚©‚Á‚½‚©

748 F
‚Æ‚ ‚égawkƒXƒNƒŠƒvƒg‚Ì擪‚Å
{last_hoge=hoge; hoge=$ 3}
‚Á‚Ä‚â‚Á‚Ä‚é‚ñ‚¾‚¯‚ÇA
hoge=$ 3‚Íhoge=$3‚̊ԈႢ? ‚»‚ê‚Æ‚à‚±‚¤‚¢‚¤‹L–@‚ª‚ ‚é?

749 F
>>748
$ ‚͉‰ŽZŽq‚¾‚©‚çAa=b+1‚ða = b + 1‚Æ‘‚­‚悤‚È‚à‚Ì‚©‚ÈB

750 F
‚¦‚¦[ ‰‰ŽZŽq‚¾‚Á‚½‚Ì‚©‚ BÕŒ‚‚ÌŽ–ŽÀ

751 F
‰‰ŽZŽq‚¾‚©‚çA•Ï”‚Å‚à‚¢‚¢‚æB

752 F
Ž®‚ª‘‚¯‚é‚ËB
$ ‚͈ê”Ô—D懈ʂª‚‚¢‚©‚çA‚©‚Á‚±‚ÅŠ‡‚ç‚É‚á‚¢‚©‚ñ‚ªB

753 F
¡‚Í‚¶‚ß‚Ä’m‚Á‚½Bhaskell‚Ì$‚͉‰ŽZŽq‚¾‚Á‚Ä’m‚Á‚Ä‚½‚¯‚ÇAawk‚Å‚à‰‰ŽZŽq‚¾‚Á‚½‚ñ‚¾‚ËB

754 F
‚»‚µ‚Ä”¼”N‹ß‚­‘‚«ž‚Ý‚ª–³‚©‚Á‚½

755 F
‚¢‚âawkƒXƒŒ‚È‚ñ‚Ä•’i‚Í‚»‚ñ‚Ȃɘb‘è‚È‚¢‚¾‚ë

756 F
Ž¿–₳‚¹‚Ä‚­‚¾‚³‚¢
¡ƒfƒBƒŒƒNƒgƒŠ“à‚̃tƒ@ƒCƒ‹‚Ì–¼Ì‚ƃTƒCƒY‚̃ŠƒXƒg‚ðì‚肽‚¢‚ÆŽv‚Á‚Ä‚¢‚Ü‚·
ƒRƒ}ƒ“ƒh‚Æ‚µ‚Ä‚Íls -l‚ðŽÀs‚µ‚Ä‚¢‚Ü‚·‚ª‚±‚ê‚ð‚³‚ç‚Éawk‚ɃpƒCƒv‚µ‚Ä‚¢‚Ü‚·
‚½‚¾‚µƒtƒ@ƒCƒ‹–¼‚ɃXƒy[ƒX‚ªŠÜ‚Ü‚ê‚Ä‚¢‚邽‚߈ȉº‚̂悤‚È‹ê“÷‚Ìô‚ð‚Æ‚Á‚Ä‚¨‚è‚Ü‚·‚ª
ls -l | awk '{print $5 "\t" $9$10$11$12$13$14$15$16$17$18$19}'
10ŒÂˆÈã‚Å‹æØ‚ç‚ê‚Ä‚é‰Â”\«‚à‚ ‚邽‚ߪ–{“I‚ȑΉž‚ð‚µ‚½‚¢‚Æl‚¦‚Ä‚¢‚Ü‚·‚ª
‚æ‚¢ˆÄ‚Í‚ ‚è‚Ü‚·‚Å‚µ‚傤‚©

757 F
# ƒtƒ@ƒCƒ‹–¼‚Éu"v‚ªŠÜ‚Ü‚ê‚Ä‚¢‚½‚ç’m‚ç‚ËB
ls -Ql |awk '{split($0, foo, "\x22"); print $5 "\t" foo[2]}'

758 F
QƒIƒvƒVƒ‡ƒ“‚͕׋­‚É‚È‚Á‚½
ls -l|awk '{s=$5;for(i=1;i<9;i++)$i="";print s"\t"$0}'

759 F
034@@‚Í@h@i”¼Špj
035@@‚Í@”@i”¼Špj@@@@@@@‚Å‚¨‚‹‚Å‚·‚©H

760 F
>>759
‚¢‚¢‚¦ˆá‚¢‚Ü‚·B

761 F
‚Ç‚¿‚ç‚à”ñ‰Â“Ç•¶Žš‚Å‚·‚ËB‚»‚µ‚Ä‚»‚¤‚È‚é‚ƃXƒŒˆá‚¢B
awk‚Æ—‚Þ‚Ì‚È‚ç‹ï‘Ì“I‚É‚Ç‚¤‚¼B

762 F
Terastation‚̃tƒ@ƒCƒ‹Eƒzƒ‹ƒ_–¼‚ÉŽg‚¤‚ƃtƒ@ƒCƒ‹ƒŒƒvƒŠƒP[ƒVƒ‡ƒ“‚ŃGƒ‰[‚ª‹N‚±‚镶Žš‚ª‚ ‚Á‚ÄA‚»‚ê‚ð•ÏŠ·‚·‚éƒoƒbƒ`‚𶬂·‚鎞‚É‚±‚̃}ƒCƒi[Œ¾Œê‚ª‘劈–ô‚µ‚½B
–ñ80–œŒ‚̃tƒ@ƒCƒ‹ƒzƒ‹ƒ_–¼‚©‚ç’Šo‚·‚é‚Ì‚É10•ª’ö“x‚¾‚Á‚½B

763 F
Gawk4.1.2‚ªo‚½‚È‚ A‚ÆŽv‚Á‚Ä‚½‚ç‚·‚®4.1.3‚ªo‚½B
‘fl‚ɂ͈Ⴂ‚ª‚ ‚܂蕪‚©‚ç‚ñ‚Ì‚¾‚ªB

764 F
http://www.amazon.co.jp/AWKŽÀ‘H“ü–å-Software-Design-plus-’†“‡/dp/477417369X

V‚µ‚¢–{Ao‚½‚ñ‚¾‚È
”p‚ê‚È‚¢‚Ì‚ª¦‚¢

765 F
>>764
”ƒ‚Á‚Ä‚«‚½B‚Ü‚¾Å‰‚Ì•û‚ÆÅŒã‚Ì•û‚ð’­‚ß‚½‚¾‚¯‚¾‚¯‚ÇB

ƒy[ƒWiviu‚Í‚¶‚ß‚Évj‚Åawk‚Ì•\‹L‚ɂ‚¢‚Äu–{‘“à‚Å‚ÍA‚¢‚¸‚ê‚Ì
ê‡‚à‚·‚ׂĬ•¶Žš‚Ìawk‚Æ‚¢‚¤•\Œ»‚É“ˆê‚µ‚Ä‚¨‚è‚Ü‚·v‚Æ
‚ ‚é‚Ì‚ÉA‘–¼‚ªAWKB

Šª––‚̃Šƒtƒ@ƒŒƒ“ƒX‚Å‹C‚É‚È‚Á‚½‚Æ‚±‚ëB
‰‰ŽZŽq‚Ì—D懈ʂÉG‚ê‚Ä‚¢‚È‚¢AƒtƒB[ƒ‹ƒh‰‰ŽZŽq‚ª
u“Á•Ê‚ȈӖ¡‚ðŽ‚‚ȕϔv‚Ì’†‚É“ü‚ê‚ç‚ê‚Ä‚¢‚éB

ŽQl‘‚╶Œ£‚ª‚È‚¢‚¯‚ÇA¡Žž‚Íuƒlƒbƒg‚ŃOƒO‚êv‚©‚ÈB

766 F
Mono: Playback -9707 [5%] [-97.07dB] [on]
ã‚Ìs‚©‚çƒp[ƒZƒ“ƒg‚𜂢‚½”Žšiã‚̗Ⴞ‚Æ5j‚ðŽæ“¾‚µ‚½‚¢‚Ì‚Å‚·‚ª‚ǂ̂悤‚É‚µ‚½‚ç‚æ‚¢‚Å‚µ‚傤‚©H
ƒp[ƒZƒ“ƒg‚Ì’l‚Í0‚©‚ç100‚Ì®”‚¾‚ÆŽv‚¢‚Ü‚·

767 F
# $0 ‚É“ü‚Á‚Ä‚¢‚é‚Æ‚µ‚Ä
sub(/%.*/, "");
sub(/.*[^0-9]/, "");

768 F
awk -F"[%[]" '{print $2}'
‚Å‚Í‚Ü‚¸‚¢?

769 F
>>767,769
‚ ‚肪‚Æ‚¤‚²‚´‚¢‚Ü‚µ‚½
‚Ç‚¿‚ç‚Å‚àŠó–]‚ÌŒ‹‰Ê‚ð‹‚߂邱‚Æ‚ª‚Å‚«‚Ü‚µ‚½

770 F
ƒeƒ“ƒvƒŒ‚Å‚ ‚锤‚Ì1‚ª“Ç‚ß‚È‚¢‚ñ‚¾‚ªA‚±‚̃XƒŒ“I‚É‚ÍPOSIX‚Å‘‚­‚Ì‚ª
³“H•’i‚ÍGawk‚µ‚©Žg‚í‚È‚¢‚̂ňꉞŠm”FB

771 F
ƒAƒz‚¶‚á‚È‚¢ƒGƒCƒz‚¾

772 F
awk ‚Ì a ‚ÍAaho ‚Ì a

‚½‚¾‚µAƒGƒCƒz‚Ɠǂނ炵‚¢
‚Ö‚¥[[[[[

773 F
awkŽg‚Á‚Ä‚éƒVƒFƒ‹ƒXƒNƒŠƒvƒgŒ©‚é‚Æ“¦‚°‚Ä‚é‚È‚ ‚ÆŽv‚¤

774 F
•’Ê‚Í x[3]=5 ‚Æ‘‚­‚ªA=‚È‚µ‚Ì
x[3]
‚¾‚¯‚Å‚àƒGƒ‰[‚ƂȂ炸Ax ‚ð”z—ñ‚Æ‚µ‚ÄŠm•Û‚µAlength(x)=1 ‚É‚È‚é‚Ì‚ð”­Œ©
‚Ü‚ A‚ ‚Ü‚è•K—v‚È‚¢‚¯‚Ç

775 F
‚Ü‚ Agawk‚̃}ƒjƒ…ƒAƒ‹‚Å‚à‘ã“ü‚Ì‘O‚ÉŽQÆ‚ªo‚Ä‚­‚邵

776 F
‚»‚¤‚Å‚µ‚½‚©AV”­Œ©‚Å‚È‚©‚Á‚½

777 F
‘ã“ü‘O‚É‚¤‚Á‚©‚èŽQÆ‚µ‚Ä‚µ‚Ü‚¤‚Ì‚Í‹H‚É—Ç‚­‚ ‚éB

778 F
IGNORECASE=1
‚ðBEGIN ‚Ì‘O‚É’u‚¢‚Ä‚àƒGƒ‰[‚ɂȂ炸A•s‰Â‰ð“®ì
ƒZƒLƒ…ƒŠƒeƒB“I‚É‚â‚΂­‚È‚¢‚Ì

779 F
>>778
BEGIN ƒZƒNƒVƒ‡ƒ“‚ð擪‚É‘‚¯‚Ƃ͉½ˆ‚É‚à‘‚¢‚Ä‚È‚¢B

BEGIN ‚ðÅŒã‚É‘‚¢‚Ä‚à END ‚ðʼn‚É‘‚¢‚Ä‚à–â‘è‚Í–³‚¢B
‰½ˆ‚É‘‚¢‚Ä‚àAŽÀÛ‚É‚Í擪s“Ç‚Ýž‚Ý‘OAŠes“Ç‚Ýž‚ÝŽžAÅIs“Ç‚Ýž‚ÝŒã‚É‚»‚ꂼ‚ê
ƒpƒ^[ƒ“ƒ}ƒbƒ`‚ªs‚í‚ê‚Ä‚¢‚éB
‚½‚¾ƒ}ƒbƒ`‚·‚éðŒ‚ª“ÁŽê‚¾‚©‚çA擪‚©ÅŒã‚Å‚µ‚©’†‚Ì•¶‚ªŽÀs‚³‚ê‚È‚¢‚¾‚¯B

780 F
ƒTƒbƒJ[ƒuƒbƒVƒ…“ú–{‘ã•\“ú’ö‚Õ‚ ‚½‚ñi‚µ‚ã‚Á‚¿‚傤‚Ü‚¢‚­‚닳ˆç’·Œð‘ãjt•¶Ž·s40‘㔄㷊zƒVƒ…ƒK[ƒ`ƒ‡ƒR
https://www.youtube.com/watch?v=NDq1QoJY0nY‰Fƒhƒiƒ‹ƒhƒAƒiƒŠƒXƒgƒpƒ[ƒXƒg[ƒ“ƒR[ƒ`ƒ“ƒO‚Æ‚µ‚Ü‚¦‚ñ
ƒTƒbƒJ[ƒuƒbƒVƒ…“ú–{‘ã•\“ú’öŒÃ–{‰®‚悵‚½‚¯‚µ‚ã‚Á‚¿‚傤‚¿‚傱‚µ‚オ[
ƒfƒB[ƒ‰[Å–±“VËŠJ”­ŽÒŽ€–S‹l‚݃ˆƒ~ƒhƒNƒ^[ƒ}ƒCƒNƒƒT[ƒrƒX•s‘«
ƒTƒbƒJ[ƒuƒbƒVƒ…“ú–{‘ã•\“ú’ö‚Õ‚ ‚½‚ñƒVƒtƒgŒõ‹à‚³‚©‚¢‹­§ƒoƒCƒglŒ NŠQ–â‘è
t•ªŽ‘Œ¹Ž·sƒjƒ…[ƒˆ[ƒN’ጴ‰¿‚Ú‚Á‚½ƒXƒe[ƒLƒ\ƒ‹ƒgƒŒƒCƒN•Ÿ‰ª‰¡•lV‹´“z—ê‰Û‹àƒpƒ`ƒVƒtƒg‹­§ƒoƒCƒg–â‘èVŠƒ•ÄƒZƒ“ƒ^[¶Žc
ƒRƒXƒ‚Q‚Sƒ`ƒƒƒŠƒeƒB[‰B‚ê40‘㶊ˆ•ÛŒìƒvƒŒƒCƒ{[ƒCƒoƒCƒgƒŒ[ƒh‚¢‚½‚è‚ ‚ñÚ‘Ò–â‘è
ƒ}ƒXƒRƒ~KARDƒ[ƒ“ƒP[ƒI[ƒT[ƒrƒX•s‘«¥Šˆƒp[ƒeƒB[Šñ•t‹àŽ·sŒ´”­ƒrƒWƒlƒX
FBIƒ`ƒƒƒCƒj[ƒYƒ^ƒCƒzƒeƒ‹”„㎖–±ŠƒKƒ`ƒƒŒˆŽZƒKƒ`ƒƒƒLƒƒƒ“ƒy[ƒ“i”Ì”„•ñ“¹w‰ßŒƒ”h‘gDŒüŒg‘ÑÅVî•ñ’ñ‹ŸI—¹
Z’·”­Œ¾×S’ˆÓƒm[ƒgƒ“ŽY”pƒGƒ‰[(’˜ìŒ ƒNƒŒ[ƒ€’†‘”½‰ž—ZŽ‘‚Šz‹³ˆç”ï)(’†‘•ßŒ~’c‘Ì40‘ãŽÐˆõƒTƒbƒJ[ƒRƒƒ“ƒg
‚Šz“üŠw‹àƒ„ƒtƒEV‹´‘åŠwƒ„ƒtƒEV‹´—Ž–’·FXŒo”ï ‚¨‚¶‚â50‘㎑ŽYƒKƒŠƒoƒYƒtƒB[ƒh40‘ãƒGƒŠ[ƒg

781 F
mawk32.exe‚Åumultibyte charv‚̃ƒbƒZ[ƒW‚ª‚łĢ‚Á‚Ä‚Ü‚·A‰½‚ªŒ´ˆö‚Å‚µ‚傤?
—}Ž~‚·‚é•û–@‚Í‚ ‚è‚Ü‚·‚©?
multibyteŽw’è‚̃Rƒ}ƒ“ƒhƒ‰ƒCƒ“ƒIƒvƒVƒ‡ƒ“‚Í–³‚¢‚悤‚È‚Ì‚Å‚·‚ª?

782 F
UTF-8 ‚ªŽg‚¦‚È‚¢‚Ì‚©‚à
umawk multibyte charv‚ÅŒŸõI

783 F
„‚V‚W‚Q
ƒf[ƒ^‚àƒvƒƒOƒ‰ƒ€‚à‚r‚i‚h‚r‚Å‚·B
‰½‚É”½‰ž‚µ‚Ä multibyte char‚ªo‘±‚¯‚é‚Ì‚©•s–¾‚Å‚·B
‚‡‚‚—‚‹‚‘¬‚È‚Ì‚Å–ž‘«‚È‚Ì‚Å‚·‚ªA‚r‚s‚c‚d‚q‚q‚É multibyte char‚ª‚Å‘±‚¯‚é‚Ì‚Å‚¤‚´‚¢‚µA‚±‚Ìo—Í‚Ô‚ñ‚¾‚¯‘¬“x‚à’ቺH

784 F
“ü—Í‚ÉSJIS‚Å‚È‚¢•¶Žš‚ª¬Ý‚µ‚Ä‚¢‚邱‚Æ‚È‚¢H
nkf -s “ü—̓tƒ@ƒCƒ‹ | awk
‚Å•ÏŠ·‚µ‚½‚ç

785 F
ƒR[ƒh‚ð‹³‚¦‚ĉº‚³‚¢B
ƒ`ƒƒƒŒƒ“ƒW‚µ‚Ü‚µ‚½‚ªA‚±‚ê‚ł̓_ƒ‚Å‚·BB
(for i=1, i<=NF, i++){
if $i<0{$i=0}
}
print $0

‚µ‚½‚¢‚±‚Æ‚ÍA‰º‹L‚̂悤‚Ès—ñ‚Ì”Žš‚ª‚ ‚Á‚ÄA•‰‚Ì’l‚ðƒ[ƒ‚É’uŠ·‚µ‚½‚¢‚Å‚·B
¥Œ³‚Ìs—ñ
3 15 6 1
-5 4 0 2
8 9 -7 11
¥‚â‚肽‚¢•ÏŠ·Œã‚Ìs—ñƒCƒ[ƒW
3 15 6 1
0 4 0 2
8 9 0 11

786 F
\•¶‚ª‚º‚ñ‚º‚ñ‘Ê–ÚB
{for(i=1;i<=NF;i++)if($i<0){$i=0};print $0;}
u‚µ‚½‚¢‚±‚Æ‚ÍA`‚µ‚½‚¢‚Å‚·Bv‚Ì\•¶‚à‘Ê–ÚB“TŒ^“I‚È‚Ë‚¶‚ꕶB

787 F
Ruby, Python ‚È‚Ç‚ðŽg‚¦‚ÎH

788 F
>>787
Ruby, Python ƒXƒNƒŠƒvƒg‚ð’ñŽ¦‚µ‚Ä‚Ý‚ë‚æB

789 F
>>786
‚ ‚肪‚Æ‚¤‚²‚´‚¢‚Ü‚·Io—ˆ‚Ü‚µ‚½I
(ˆêsƒvƒƒOƒ‰ƒ~ƒ“ƒOIawk•Ö—˜‚Å‚·‚Ë)

790 F
awk ‚¶‚á‚È‚­‚Ä‚à‚¢‚¢‚ñ‚È‚ç
$ sed 's/-[0-9][0-9]*/0/g' ...
GNU sed ‚È‚ç
$ sed -r 's/-[0-9]+/0/g' ...
‚Å‚¦‚¦‚ñ‚¿‚ႤH

791 F
switch‚È‚¢‚Ì‚Ë

792 F
‚©‚Ü‚Õ@uwƒVƒFƒ‹Œ|x‚ÉŒø‚­ AWKˆ•ûâ³v
ƒGƒCƒzæ¶uAWK‚Á‚ÄŽg‚¢ŽÌ‚Ä‚ÌŒ¾Œêi’†—ªjƒvƒ‰ƒXƒAƒ‹ƒtƒ@‚̈—‚ª‚â‚肽‚¢‚æ‚ËB
‚½‚¾‚»‚̈—‚Í‚Æ‚Ä‚àŠÈ’P‚Ȉ—‚Å‚¢‚¢B‚»‚±‚ɑ΂µ‚ÄV‚µ‚¢ƒvƒƒOƒ‰ƒ€Œ¾Œê‚ðì‚Á‚Ä‚¢‚«‚½‚¢v
AWKƒu[ƒ€‘æ1¢‘ã‚ÍuƒAƒCƒhƒ‹Ž«‘v‚ÅŠw‚ñ‚¾\\“ú–{GNU AWKƒ†[ƒU[‰ï Ä“¡‚³‚ñ (1/5)FCodeZineiƒR[ƒhƒWƒ“j
http://codezine.jp/article/detail/9478
2016/06/15 14:00

793 F
‚₽‚ç‚Æ‘±‚«‚Í“o˜^‚µ‚Ä“Ç‚ß‚ÆŒ¾‚í‚ê‚Ä‚à‚È‚ B
‚±‚̃XƒŒ‚ª—§‚Á‚½ ‚©‚çJGAUC‚ÌHP‚ªXV‚³‚ê‚Ä‚¢‚È‚¢‚Á‚Ă̂ং¢B

794 F
Windows”Å‚Ìgawk‚Å—V‚ñ‚Å‚½‚ç
for (i=0; i<n; i++) ‚æ‚è
for (i=0; i<n; i+=1) ‚Ì‚Ù‚¤‚ª
ŽÀsŽžŠÔ‚ª’Z‚­‚Ȃ邱‚Æ‚É‹C‚¢‚½
‚È‚ñ‚¾‚±‚è‚á

795 F
for(i=1;i<=1000000;i++){a[i]=1}
‚Æ
for(i=1;i<=1000000;i++){a[i]=sprintf("1")}
Œ‹‰Ê‚Í“¯‚¶‚Í‚¸‚È‚Ì‚ÉAŒãŽÒ‚͈Ùí‚Ƀƒ‚ƒŠ‚ðH‚¤I‚Ó‚µ‚¬I

796 F
“¯‚¶‚¶‚á‚È‚¢‚¼B”’l‚Æ•¶Žš—ñ‚¾B
‚Æ‚±‚ë‚ÅAŒN‚ªŽg‚Á‚Ä‚é awk ‚Í‚Ç‚ê?
apropos awk
‚Á‚Ä‚â‚Á‚Ä‚Ý‚½‚çA‚±‚ñ‚È‚ño‚Ä‚«‚½B
gawk (1) - ƒpƒ^[ƒ“ŒŸõEˆ—Œ¾Œê
igawk (1) - ƒCƒ“ƒNƒ‹[ƒhƒtƒ@ƒCƒ‹‚ðŽg‚¤ gawk
a2p (1) - Awk to Perl translator
awk (1) - pattern scanning and text processing language
English (3perl) - use nice English (or awk) names for ugly punctuation v...
mawk (1) - pattern scanning and text processing language
nawk (1) - pattern scanning and text processing language

797 F
>>796
—Ⴊˆ«‚­‚ăXƒ}ƒ\ACygwinã‚Ågawk4.1.4Žg‚Á‚Ä
for(i=1;i<=1000000;i++){a[i]="1"}
‚Æ
for(i=1;i<=1000000;i++){a[i]=sprintf("1")}
‚Ń‹[ƒv’Eo’¼Œã‚̃ƒ‚ƒŠŽg—p—Ê‚ð”äŠr‚·‚é‚Æ
オ60MBytesA‰º‚ª600MBytes‚Æ‚©‚É‚È‚Á‚½
cmd‚Å“®‚­gawk‚Ì3.1.7‚Å‚à“¯‚¶‚悤‚È·‚ª‚Å‚½
Linux‚ÍŽŽ‚µ‚Ä‚¢‚È‚¢‚¯‚ÇA‚à‚µ‘åä•v‚È‚çWindows”Å‚Ì–â‘è‚©‚à

798 F
>>797
OSX El Capitan
gawk 4.1.4
‚»‚ꂼ‚êBEGIN{}‚É“ü‚ꂽƒXƒNƒŠƒvƒg‚ð“Ç‚Ýž‚Ü‚¹‚ÄŽÀsB
‚Å‘OŽÒ”\MBAŒãŽÒ3GB’´‚܂Ńƒ‚ƒŠŽg‚Á‚½iƒAƒNƒeƒBƒrƒeƒBƒ‚ƒjƒ^jB

799 F
‚â‚Á‚Ä‚Ý‚½‚æBŠÂ‹«‚Í Debian jessieB
ƒeƒXƒgƒvƒƒOƒ‰ƒ€
#!/usr/bin/perl -w
use strict;
{
my $do_ps = 'system("ps p $PPID o pid,sz,args")';
foreach ( 1,'sprintf("1")'){
system('gawk',"BEGIN { for(i=1;i<=1000000;i++){a[i]=$_} $do_ps;}");
}
}
ŽÀsŒ‹‰Ê
PID SZ COMMAND
7389 7693 gawk BEGIN { for(i=1;i<=1000000;i++){a[i]=1} system("ps p $PPID o pid,sz,args");}
PID SZ COMMAND
7392 158116 gawk BEGIN { for(i=1;i<=1000000;i++){a[i]=sprintf("1")} system("ps p $PPID o pid,sz,args");}
KB ’PˆÊ‚炵‚¢‚©‚ç 8MB ‚Æ 160MB B‚½‚¾‚²‚Æ‚¶‚á‚È‚¢·‚¾‚ËB
1 ‚ð "1" ‚É•ÏX‚µ‚Ä‚à‚±‚ñ‚ÈŠ´‚¶‚¾‚©‚ç”’l‚Æ•¶Žš—ñ‚Ì·‚Æ‚¢‚¤‚킯‚Å‚Í‚È‚³‚»‚¤B

800 F
‚²‚ß‚ñA‘‚«–Y‚ꂽB
GNU Awk 4.1.1, API: 1.1 (GNU MPFR 3.1.2-p3, GNU MP 6.0.0)
Copyright (C) 1989, 1991-2014 Free Software Foundation.

801 F
‚æ‚­l‚¦‚½‚çAƒƒ‚ƒŠ‚ÌŽg—p—ÊŽ©‘Ì‚¶‚á‚È‚­‚ÄA‚»‚ꂪ‚ǂꂾ‚¯‘‚¦‚½‚©‚ªd—v‚¾‚ËB
‚»‚µ‚ÄA˜A‘z”z—ñ‚Ì\‘¢‘̂ƃL[‚É•K—v‚ȗʂ͂ǂ̃P[ƒX‚Å‚à“¯‚¶‚Æl‚¦‚ç‚ê‚éB
‚‚܂èA˜A‘z”z—ñ‚Ì—v‘f‚Ì‚½‚ß‚Ì—Ê‚ª‚ǂꂾ‚¯ˆá‚¤‚©‚ð’¼Ú’m‚邱‚Æ‚ª‚Å‚«‚é‚Í‚¸B
‚Æ‚¢‚¤‚킯‚ÅA‚à‚¤ˆê‰ñƒeƒXƒgB
https://ideone.com/mRuFj7

802 F
ŽÀsŒ‹‰Ê
element before after diff
1 5685 7691 2006
i 5685 29226 23541
sprintf("%d",i) 5685 158124 152439
sprintf("%d",i) + 0 5685 29221 23536
sprintf("%d",i) "" 5685 37026 31341
1000000 —v‘f‚Ì”z—ñ‚Å 2MB ‚Á‚ÄA‚¢‚Á‚½‚¢‚Ç‚¤‚â‚Á‚Ä‚é‚ñ‚¾‚낤B­‚È‚·‚¬‚éB
sprintf("%d",i) ‚ª“Ëo‚µ‚Ä‘½‚¢‚Ì‚Í sprintf ‚Å‘½‚ß‚ÉŠm•Û‚µ‚Ä
Ø‚è‹l‚ß‚½‚肹‚¸‚É‚»‚Ì‚Ü‚ÜŽg‚Á‚Ä‚é‚Ì‚¾‚낤‚©B
‚³‚ Agawk ‚̃\[ƒXƒR[ƒh‚ðƒnƒbƒN‚µ‚Ä‚Ý‚é‚©!

803 F
„‘ª‚¾‚¯‚ÇAstream, yield, callbackA’x‰„ˆ—‚©‚à
ƒf[ƒ^‚ðƒoƒbƒtƒ@ƒTƒCƒY•ª‚¾‚¯“Ç‚Ýž‚ñ‚ň—‚µ‚ÄA
ŽŸ‚̃Rƒ}ƒ“ƒh‚Ö‘—‚Á‚½‚çA‚»‚ê‚ðŽÌ‚Ä‚ÄAŽŸ‚̃f[ƒ^‚ð“Ç‚Ýž‚Þ‚Ì‚©‚à
‚±‚Ì•ûŽ®‚¾‚ƃƒ‚ƒŠ‚ÍAƒoƒbƒtƒ@ƒTƒCƒY•ª‚¾‚¯‚µ‚©Žg‚í‚È‚¢

804 F
ƒxƒNƒ^[‚ÉŒöŠJ‚³‚ê‚Ä‚égawk3.1.5i‚Æ”ñŒöŠJ‚Ì3.1.7jAƒwƒ“ƒeƒR‚Ȉ—‚ªŒ©‚‚©‚Á‚½‚̂Ńƒ‚
‚±‚Ìgawk‚ÌsystemŠÖ”‚ðŽÀs‚·‚é‚ÆAŠÂ‹«•Ï”TMP‚ªŽw‚µ‚Ä‚éƒtƒHƒ‹ƒ_‚É
@echo off
systemŠÖ”‚̈ø”
‚Æ‚¢‚¤2s‚ª‘‚©‚ꂽƒoƒbƒ`ƒtƒ@ƒCƒ‹pip?.bati?‚ÍsystemŽÀs‰ñ”+1j‚Æ‚¢‚¤‚Ì‚ªì¬‚³‚ê

805 F
EEE‚¢‚Á‚Ø‚ñ‚É‘‚±‚¤‚Æ‚µ‚½‚çƒnƒl‚ç‚ê‚éorz

806 F
(‘±‚«)
‚»‚ê‚ð/c pip?.bat‚Å‹N“®AŠ®—¹Œã‚Épip?.bat‚ð
휂Ƃ¢‚¤—¬‚ê‚ŃRƒ}ƒ“ƒh‚ªŽÀs‚³‚ê‚é

807 F
(‘±‚«)
systemŠÖ”‚ðŽg‚Á‚½ƒXƒNƒŠƒvƒg‚𓯎ž‚É1‚‚µ‚©ŽÀs‚µ‚È‚¢‚È‚ç—Ç‚¢‚¯‚Ç
2‚ˆÈãŽÀs‚µ‚½‚Æ‚«‚̓^ƒCƒ~ƒ“ƒOŽŸ‘æ‚Åpip?.bat‚Ì”Žš‚ª‚Ԃ‚©‚èAæ‚ÉŽÀs‚µ‚½‘¤‚ª
E ƒRƒ}ƒ“ƒh‚ªŽÀs‚³‚ê‚È‚¢
E ƒRƒ}ƒ“ƒh‚ªŽÀs‚³‚ê‚邯‚ÇAŠ®—¹Œã‚Éuƒoƒbƒ`ƒtƒ@ƒCƒ‹‚ªŒ©‚‚©‚è‚Ü‚¹‚ñv‚ª“f‚©‚ê‚é
‚Æ‚¢‚¤Œ‹‰Ê‚É‚È‚é
—\‚ßcmd‚Ì‘‹‚²‚Æ‚ÉTMP‚ð•Ï‚¦‚Ä‚¨‚¯‚Ζâ‘è‚È‚¢‚¯‚Ç–Ê“|‚­‚³‚¢
ƒRƒ}ƒ“ƒh | getline‚Å‹N“®‚µ‚½‚Ù‚¤‚ªŽè‚ÁŽæ‚è‘‚¢‚ÆŽv‚¤
i‚½‚¾‚µo—Í‚ª2KBytes—­‚Ü‚é‚ÆŽ~‚Ü‚é‚©‚ç“K‹XƒŠƒ_ƒCƒŒƒNƒg‚·‚éj
‚Å‚à‰½‚Å‚±‚ñ‚È•û–@‚ÅsystemŠÖ”‚ðŽÀ‘•‚µ‚½‚ñ‚¾‚낤‚Ë(LEƒÖEM)

808 F
tmpfile ‚ðŽg‚¦‚ÎA‘¼‚Æd•¡‚µ‚È‚¢Aƒ‰ƒ“ƒ_ƒ€‚È–¼‘O‚̃tƒ@ƒCƒ‹‚ðì‚ê‚é‚Ì‚ÉA
‚Ç‚¤‚µ‚ÄŽg‚í‚È‚¢‚Ì‚¾‚낤H

809 F
MS-DOS ‚Å‚Í‚ËAƒRƒ}ƒ“ƒhƒ‰ƒCƒ“‚Ì’·‚³‚̧ŒÀ‚ªŒµ‚µ‚©‚Á‚½‚ñ‚¾‚æB‹Á‚­‚È‚©‚êA‚½‚Á‚½ 128 ƒoƒCƒg‚¾B
‚»‚ñ‚Ȋ‹«‚Å‚ÍAƒoƒbƒ`ƒtƒ@ƒCƒ‹‚É‚·‚ê‚ÎŽÀs‚Å‚«‚邯‚Ç
command /c "prog arg1 arg2 ..."
‚Å‚Í command /c ‚Ì‚¹‚¢‚ŧŒÀ‚ð‰z‚¦‚é‚Æ‚¢‚¤‚±‚Æ‚à‚ ‚邾‚낤B‚‚܂èA‚»‚¤‚¢‚¤‚±‚Æ‚¾B
cccç’k‚¾BŠm‚©‚É‚»‚¤‚¢‚¤§ŒÀ‚Í‚ ‚Á‚½‚¯‚ÇB
Œ»Ý‚Í‚à‚¤ system ŠÖ”‚Å‚Í‚»‚¤‚¢‚¤‚±‚Æ‚ð‚µ‚Ä‚¢‚È‚¢‚Æ‚¢‚¤‚±‚Æ‚ª ChangeLog ‚É‘‚©‚ê‚Ä‚é‚æB
2014-01-15 Eli Zaretskii <eliz@gnu.org>
* popen.c (os_system): Use spawnl, and quote the command line, to be consistent with what gawk_popen does.
(os_popen) [__MINGW32__]: Don't scriptify the command, to be consistent with gawk_popen.
(os_pclose) [__MINGW32__]: Update to match os_open: no need to unlink the script file.

810 F
‚Å‚àƒ\[ƒXƒR[ƒh‚ðŒ©‚é‚©‚¬‚èAƒpƒCƒv‚Å‚Í‚»‚¤‚¢‚¤‚±‚Æ‚ð‚µ‚Ä‚é‚Ý‚½‚¢‚È‚ñ‚¾‚¯‚Çcc
‚¿‚å‚Á‚ÆŽŽ‚µ‚Ä‚Ý‚Ä‚­‚ê‚È‚¢‚©‚ÈB
system("dir") | getline
‚Ý‚½‚¢‚ÈŠ´‚¶? ‚æ‚­’m‚ç‚È‚¢‚¯‚ÇB

811 F
ƒRƒ}ƒ“ƒh | getline ‚Å‹N“®‚·‚éꇂÍpip?.bat‚Íì‚ç‚ê‚Ü‚¹‚ñ‚Å‚µ‚½
systemŠÖ”‚¾‚¯pip?.batŒo—R‚Ì–Í—l
klabaster”Å‚Ìwindows—pgawk4.1.3‚¾‚ÆsystemŠÖ”‚ªpip?.bat‚ð
ì‚ç‚È‚©‚Á‚½‚©‚çAƒxƒNƒ^[”ŌŗL‚Ì“®‚«‚©‚È‚ ‚ÆŽv‚¢‚Ü‚·

812 F
‚ ‚肪‚Æ‚¤‚²‚´‚¢‚Ü‚·B
gawk-4.1.1 ‚Ì pc/popen.c ‚ðŒ©‚½ŒÀ‚è‚Å‚Í gawk ‚Ì system ŠÖ”‚Ńoƒbƒ`ƒtƒ@ƒCƒ‹‚ðì‚é‚Ì‚Í MINGW ŒÀ’è‚ÅA
ChangeLog ‚É‚Í–â‘肪‰ðÁ‚³‚ꂽ‚©‚ç’¼Ú spawnl ‚ÅŽÀs‚·‚é‚悤‚É‚µ‚½‚Æ‘‚©‚ê‚Ä‚¢‚é‚킯‚Å‚·‚ª
gawk ‚̃pƒCƒvˆ—‚ðŽÀs‚µ‚Ä‚¢‚é(‚ÆŽv‚í‚ê‚é) os_popen ŠÖ”‚ł̓oƒbƒ`ƒtƒ@ƒCƒ‹‚ðì‚é‚Æ‚«‚Æ“¯—l‚É
tempnam ŠÖ”‚Ńtƒ@ƒCƒ‹–¼‚ðì‚Á‚½ã‚ÅA‚»‚̃tƒ@ƒCƒ‹‚ðŒo—R‚µ‚Ď󂯓n‚µ‚ð‚µ‚Ä‚¢‚é‚悤‚ÉŒ©‚¦‚Ü‚·B
‚±‚ê‚Í MS-DOS ‚ÌŽž‘ã‚©‚çŽg‚í‚ê‚Ä‚é‚â‚è•û‚ÅAƒpƒCƒv‚̂悤‚ÉŒ©‚¦‚Ä‚àƒpƒCƒv‚Å‚Í‚ ‚è‚Ü‚¹‚ñB
‚±‚Ì‚â‚è•û‚¾‚Æ gawk ‚Å
while (( command | getline) > 0)
‚Æ‘‚¢‚Ä‚àŽÀŽ¿“I‚É‚Í
system("command > filename"); while (( getline < "filename") > 0)
‚Æ“¯‚¶‚±‚Æ‚É‚È‚è‚Ü‚·B
‚ ‚­‚Ü‚Å‚à 4.1.1 ‚Ì pc/popen.c ‚Ì os_popen ŠÖ”‚ª‚»‚¤Œ©‚¦‚é‚Æ‚¢‚¤‚¾‚¯‚ÅAŽÀۂɂ͈Ⴄ‚©‚à‚µ‚ê‚Ü‚¹‚ñ‚ª
Ž©•ª‚ÅŽŽ‚·‚±‚Æ‚ª‚Å‚«‚Ü‚¹‚ñB‚»‚à‚»‚à 3.1.5 ‚̃\[ƒXƒR[ƒh‚Á‚Ä‚Ç‚±‚É‚ ‚é‚Ì?
‚à‚µŠ¨ˆá‚¢‚¶‚á‚È‚¢‚È‚ç >>807 ‚Æ“¯‚¶–â‘肪‹N‚±‚è‚»‚¤‚È‹C‚ªcc
Linux ‚ðŽg‚Á‚Ă鎩•ª‚É‚ÍŠÖŒW‚È‚¢‚Æ‚¢‚Á‚Ä‚µ‚Ü‚¦‚΂»‚ê‚Ü‚Å‚Å‚·‚ªB

813 F
>>812
vector‚Ì”z•zƒtƒ@ƒCƒ‹“à‚Ìreadme‚ɂ̓\[ƒXƒR[ƒh‚Ì
ŒöŠJꊂð’T‚µ‚Ä‚é‚Æ‚©A’¼Ú˜A—‚·‚ê‚Γn‚·‚Æ‚©‘‚¢‚Ä‚ ‚éB
Windows”ÅANT‚ ‚½‚è‚©‚çˆêŽžƒtƒ@ƒCƒ‹ì‚炸‚ɃpƒCƒv“®ì‚·‚é‚悤‚É
‚È‚Á‚½‚Æ‚©A‚Ç‚±‚©‚Å“Ç‚ñ‚¾‹C‚ª‚·‚邯‚ÇB

814 F
“ä‚Í‰ð‚¯‚½B
ƒtƒ@ƒCƒ‹‚ðŽg‚Á‚ăf[ƒ^‚ð“n‚·‚̂̓}ƒNƒ __DJGPP__ ‚ƃ}ƒNƒ __MINGW32__ ‚ª
‚¢‚¸‚ê‚à’è‹`‚³‚ê‚Ä‚¢‚È‚¢ê‡‚炵‚¢‚Å‚·B
Vector ‚Ì‚Í MINGW ‚È‚Ì‚ÅŠY“–‚µ‚Ü‚¹‚ñB‚¨‘›‚ª‚¹‚µ‚Ü‚µ‚½B

815 F
ƒtƒ@ƒCƒ‹‚ðŒo—R‚µ‚Ä‚¢‚Ä‚àAƒXƒgƒŒ[ƒW‚É‘‚«ž‚Þ‚Æ‚ÍŒÀ‚ç‚È‚¢
ƒƒ‚ƒŠã‚¾‚¯‚É‘¶Ý‚·‚éAƒtƒ@ƒCƒ‹‚à‚ ‚蓾‚éB
Linux‚ÌRAMƒfƒBƒXƒNAtmpfs ‚Æ‚©

816 F
>>812
î•ñ‚ ‚肪‚Æ‚¤‚²‚´‚¢‚Ü‚·B>>804‚Å‘‚¢‚½uƒwƒ“ƒeƒR‚Ȉ—v‚ðpc\popen.c“à‚ÉŠm”F‚Å‚«‚Ü‚µ‚½B
scriptifyŠÖ”‚ÌtempnamŒÄ‚ñ‚Å‚é‚Æ‚±‚ë‚ŃvƒƒZƒXID‚à‚‚¯‚é‚È‚èA×H‚µ‚½‚¢‚È‚ EEE

817 F
æ“úƒAƒNƒZƒX‚Å‚«‚È‚©‚Á‚½ GNU ‚̃TƒCƒg‚ª•œŠˆ‚µ‚Ä‚½‚Ì‚Å 3.1.5 ‚̃\[ƒXƒR[ƒh‚ð“üŽè‚Å‚«‚Ü‚µ‚½B
‚â‚Á‚Ï‚è os_popen ‚©‚ç‚à scriptify ‚ðŒÄ‚ñ‚Å‚½‚Ý‚½‚¢‚Å‚·‚ËB4.1.1 ‚̃\[ƒXƒR[ƒh‚¶‚á”»‚è‚Ü‚¹‚ñ‚Å‚µ‚½B
ˆê‰ž chdir ‚̓Aƒgƒ~ƒbƒN‚Ȉ—‚Ì‚Í‚¸‚Ȃ̂ŃŠƒXƒN‰ñ”ð‚ɖ𗧂‚Ǝv‚¢‚Ü‚·‚æB‚»‚êˆÈŠO‚É•û–@‚ª‚È‚¯‚ê‚ÎB
chdir ‚µ‚½‚ç rmdir ‚à–Y‚ꂸ‚ÉB

818 F
ŠÔˆá‚¦‚½Bchdir ‚¶‚á‚È‚­‚Ä mkdir ‚Å‚·B

819 F
>>795
‚Ç‚¤‚â‚ç >>802 ‚Å‘z‘œ‚µ‚½’Ê‚è sprintf ‚ÌŽd—l‚炵‚¢B
–{‘Ì‚Í builtin.c ‚Ì format_tree ŠÖ”‚炵‚¢B
ʼn‚É 512 ƒoƒCƒgŠm•Û‚µ‚½ƒoƒbƒtƒ@‚Í‘å‚«‚­‚Í‚È‚Á‚Ăଂ³‚­‚Í‚È‚ç‚È‚¢B
ŽÀÛ‚Ì•¶Žš—ñ‚ɇ‚킹‚ÄŠm•Û‚µ‚È‚¨‚µ‚½‚ç‚Ç‚¤‚È‚é‚© >>801 ‚̃eƒXƒg‚ð‚µ‚Ä‚Ý‚½‚æB
‰ü‘¢‘O
element@@@@@@@@@@ before@ after@@diff
1@@@@@@@@@@@@@@ 2753@@4757@@2004
i@@@@@@@@@@@@@@ 2753@ 22357@ 19604
sprintf("%d",i)@@@@@@@ 2753@151283@148530
sprintf("%d",i) + 0@@@@@ 2753@ 22376@ 19623
sprintf("%d",i) ""@@@@@@2753@ 30174@ 27421
‰ü‘¢Œã
element@@@@@@@@@@ before@ after@@diff
1@@@@@@@@@@@@@@ 2753@@4757@@2004
i@@@@@@@@@@@@@@ 2753@ 22357@ 19604
sprintf("%d",i)@@@@@@@ 2753@ 30174@ 27421
sprintf("%d",i) + 0@@@@@ 2753@ 22373@ 19620
sprintf("%d",i) ""@@@@@@2753@ 30230@ 27477
‚ ‚êH jessie ‚Ì gawk ‚Æ”ä‚ׂăƒ‚ƒŠ‚ÌŽg—p—Ê‚ª­‚È‚¢B
-DDEBUG •t‚«‚ŃRƒ“ƒpƒCƒ‹‚µ‚½‚©‚ç‘‚¦‚é‚©‚ÆŽv‚Á‚½‚Ì‚ÉB
‚Ü‚ A‚»‚êˆÈŠO‚͈ꉞ—\‘z’Ê‚è‚Å‚Í‚ ‚éB

820 F
>>794‚Æ‚©
•¶Žš—ñ‚̘AŒ‹‚Í "A" "B" ‚æ‚è‚àsprintf("%s%s", "A", "B") ‚Ì•û‚ª‘¬‚¢‚Æ‚©
gawk‚Á‚ÄŒ‹\ƒNƒZ‚ ‚è‚Ü‚·‚Ë

821 F
>>820
> •¶Žš—ñ‚̘AŒ‹‚Í "A" "B" ‚æ‚è‚àsprintf("%s%s", "A", "B") ‚Ì•û‚ª‘¬‚¢
ƒ}ƒW‚©B‹t‚¾‚Æ•·‚¢‚Ä‚¢‚½‚ªB

822 F
‚»‚ñ‚ȃoƒJ‚Ècc‚ÆŽv‚Á‚Ä‚â‚Á‚Ä‚Ý‚½B
https://ideone.com/jIYn2p
jessie —p‚̃pƒbƒP[ƒW‚É‚æ‚éŽÀsŒ‹‰ÊB
i++@@@@@@@@@6.15614
i = i + 1@@@@@@6.02501
cat " and " dog@@@13.0163
sprintf@@@@@@@19.1612
ƒCƒ“ƒNƒŠƒƒ“ƒg‚Æ‘«‚µŽZ‚Ì·‚Í—LˆÓ‚Æ‚ÍŽv‚¦‚È‚¢B
˜AŒ‹‚Æ sprintf ‚Ì·‚Í‘½•ªA”{‚­‚ç‚¢B
sprintf ‚Ì’†‚Ì•¡ŽG‚³‚ðl‚¦‚ê‚ΈӊO‚Æ·‚ͬ‚³‚¢‚Æ‚¢‚¦‚éB
ƒtƒH[ƒ}ƒbƒg•¶Žš—ñ‚ª’蔂Ȃ糋K•\Œ»‚Ý‚½‚¢‚ɃRƒ“ƒpƒCƒ‹‚·‚ê‚Î
‚‘¬‰»‚Å‚«‚écc‚Ì‚©‚È‚ ? Ž©•ª‚Å‚â‚Á‚Ă݂悤‚Æ‚Í(¡‚Í‚Ü‚¾)Žv‚í‚È‚¢B

823 F
Windows‚ÅŽg‚¦‚éawk‚ÅUnicode‚𳂵‚­ˆ—‚Å‚«‚éilength("‚ ‚¢‚¤")‚Å3‚ª•Ô‚Á‚Ä‚­‚éj‚à‚Ì‚Í
Cygwin”Å‚ÆVector”ňȊO‚É–³‚¢‚Å‚µ‚傤‚©H

824 F
‰½‚ª‚ ‚Á‚½‚ñ‚Å‚·‚©?
http://tanimoto.to/nlp/jgawk/jgawk.html
‚É‘‚©‚ê‚Ä‚¢‚é‚悤‚È‚±‚Æ‚Å‚·‚©? •Ê‚Ì‘I‘ðŽˆ‚àˆê‰ž‚ ‚é‚Ý‚½‚¢‚Å‚·‚ªB
ƒgƒ‰ƒ“ƒXƒŒ[ƒ^‚Å‚à‚¢‚¢‚È‚ç Perl ‚É a2p ‚ª“¯«‚³‚ê‚Ä‚Ü‚·B

825 F
“Á‚É¢‚育‚Æ‚Í–³‚¢‚Ì‚Å‚·‚ªAÅV‚ÌVer4.1.4‚â‚»‚̋ߕӂ̃o[ƒWƒ‡ƒ“‚Å
Unicode‚ª³‚µ‚­ˆ—‚Å‚«‚é‚à‚Ì‚ª‚ ‚ê‚ÎA¡Žg‚Á‚Ä‚¢‚éBruce”Å3.1.7‚©‚ç
æ‚芷‚¦‚½‚¢‚È‚ ‚ÆŽv‚¢‚Ü‚µ‚ÄB
«‚Ì5”N‘O‚É‘‚©‚ꂽ‹LŽ–‚Ì ‚æ‚è‘I‘ðŽˆ‚ª‘‚¦‚½‚肵‚Ä‚½‚çŠð‚µ‚¢‚È‚ÆEEEB
http://blog.livedoor.jp/corbie/archives/3924154.html

826 F
—‰ð‚µ‚Ü‚µ‚½B‘S–Å‚¾‚Á‚½‚ñ‚Å‚·‚ËB
Windows ‚Å‚ÌŽ–î‚Í‘¶‚¶‚Ü‚¹‚ñ‚ªA‚±‚¿‚ç‚Å‚àŽæ‚è‹}‚¬ gawk 3.1.5 ‚ð make ‚µ‚Ä‚Ý‚Ü‚µ‚½B
‚Æ‚±‚ë‚ÅA‚»‚̃y[ƒW‚̃eƒXƒg3‚Í•s\•ª‚Å‚·B
UTF-8 ‚ł̃pƒ^[ƒ“ƒ}ƒbƒ`‚Í’Ê핶Žš‚ÌŒëƒ}ƒbƒ`‚ÍŒ´—“I‚É‹N‚±‚è‚Ü‚¹‚ñB‹N‚±‚Á‚½‚çƒoƒO‚Å‚·B
‚¾‚©‚çAUTF-8 ‚ɑΉž‚µ‚Ä‚¢‚é‚©‚Ç‚¤‚©‚ðƒeƒXƒg‚·‚邽‚ß‚É
sub(/.‚¤/, "U")
‚Æ‚¢‚¤‚悤‚È‚à‚Ì‚ð“ü‚ê‚ÄŽŽ‚µ‚Ä‚Ý‚Ü‚µ‚½B
¡ƒrƒ‹ƒh‚µ‚½‚΂©‚è‚Ì gawk 3.1.5 ‚Æ jessie ‚̃pƒbƒP[ƒW‚Ì gawk 4.1.1 ‚ª‚±‚̃eƒXƒg‚ɇŠi‚µ‚Ü‚µ‚½B
mawk 1.3.3 ‚àƒCƒ“ƒXƒg[ƒ‹‚³‚ê‚Ä‚Ü‚µ‚½‚ªA‚±‚¿‚ç‚̓}ƒ‹ƒ`ƒoƒCƒg•¶Žš‚ɑΉž‚µ‚Ä‚¢‚È‚¢‚悤‚Å‚·B
‚³‚ÄAŒ‹˜_‚Å‚·B
ƒVƒtƒgJIS ‚ɑΉž‚µ‚Ä‚¢‚é‚Æ‚³‚ê‚é‚à‚Ì‚Í”ð‚¯‚½•û‚ª‚¢‚¢‚ÆŽv‚¢‚Ü‚·B
—]Œv‚ȉü‘¢‚Í‚µ‚È‚¢•û‚ªM—Š«‚Í‚‚¢‚Å‚µ‚傤B
length ‚ªƒoƒCƒg”‚È‚Ì‚ÍA’P‚Ƀ}ƒ‹ƒ`ƒoƒCƒg•¶Žš”ñ‘Ήž‚ŃRƒ“ƒpƒCƒ‹‚³‚ê‚Ä‚é‚©‚炾‚ÆŽv‚¢‚Ü‚·B
ƒ}ƒ‹ƒ`ƒoƒCƒg•¶Žš‘Ήž”Å‚ð’N‚©‚ªƒŠƒŠ[ƒX‚µ‚Ä‚­‚ê‚é‚Ì‚ð‘҂‚©AŽ©•ª‚ŃRƒ“ƒpƒCƒ‹‚·‚é‚©‚Å‚·‚ËB

827 F
Linux ‚ł͊‹«•Ï” LANG ‚É UTF-8 ‚ª“ü‚Á‚Ä‚È‚¢‚ÆŠú‘Ò’Ê‚è‚É“®‚¢‚Ä‚­‚ê‚Ü‚¹‚ñB
³Šm‚É‚Í LANG ‚Æ‚¢‚¤‚æ‚è LC_CTYPE ‚Å‚·‚ªA‚»‚ê‚Í‚¨‚¢‚Æ‚¢‚ÄB
‚à‚µ‚©‚µ‚½‚ç‚ÆŽv‚Á‚ÄAŽ©•ª‚É‚Í–³—p‚¾‚ÆŽv‚Á‚Ä‚½ Wine ‚Å klabaster gawk 4.1.3 ‚ð“®‚©‚µ‚Ä‚Ý‚Ü‚µ‚½B
‚Æ‚±‚낪A³‹K•\Œ»‚Ƀ}ƒ‹ƒ`ƒoƒCƒg•¶Žš‚ªŒ»‚ꂽŽž“_‚Å“{‚ç‚ê‚Ü‚·B
‚Ç‚¤‚â‚ç LANG ‚ª–³‚¢‚©ALANG=C ‚¶‚á‚È‚¯‚ê‚΃}ƒ‹ƒ`ƒoƒCƒg•¶Žš‚ðŽg‚¦‚È‚¢‚悤‚Å‚·B
‚»‚µ‚ÄŒ‹‹ÇA³‹K•\Œ»‚Ì . ‚â length ‚ð UTF-8 ƒ‚[ƒh‚É‚·‚é•û–@‚ÍŒ©‚‚¯‚ç‚ê‚Ü‚¹‚ñ‚Å‚µ‚½B
‹LŽ–‚̃Rƒƒ“ƒg‚É‚Í LC_ALL=ja_JP.UTF-8 ‚Å“®‚­‚Á‚Ä‘‚¢‚Ä‚ ‚é‚Ì‚ÉB
‚Ђå‚Á‚Æ‚µ‚ÄAWindows ‚Å‚ÍŒ´—“I‚É‚Å‚«‚È‚¢‚Æ‚¢‚¤‚±‚Æ?
‚±‚ê‚Í‚¢‚æ‚¢‚æ a2p ‚ªŒ»ŽÀ“I‚È‘I‘ðŽˆ‚©?
cc‚ÆŽv‚Á‚½‚çAo—Í‚·‚é Perl ƒR[ƒh‚ªŠÔˆá‚Á‚Ä‚Ü‚·B
‚à‚¤~ŽQ‚Å‚·BUTF-8 ‘Ήž‚Ì gawk ‚ð‚¨–]‚Ý‚Ì•û‚É‚Í Linux ‚ւ̈ø‰z‚µ‚ð‹­‚­‚¨§‚ß‚µ‚Ü‚·B

828 F
cygwin‚âmsys2‚Ìgawk‚ðŽg‚¤‚Ì‚Í‚¾‚ß‚È‚ÌH

829 F
Windows Subsystem for Linux (WSL)‚Å‚ÍAUbuntu64‚ÌŽÀsƒtƒ@ƒCƒ‹‚ª“®‚­B
Linux API ‚ðAWindows API ‚Ö•ÏŠ·‚µ‚ČĂÑo‚·
Ubuntu‚̃pƒbƒP[ƒW‚àAapt-get‚ŃCƒ“ƒXƒg[ƒ‹‚Å‚«‚é

830 F
‚¾‚ß‚Æ‚¢‚¤‚©AŒ©‚‚¯‚ç‚ê‚È‚©‚Á‚½B
‚½‚¾‚Å‚³‚¦ Windows ‚Ì‚±‚Æ‚È‚ñ‚©’m‚ç‚È‚¢‚ñ‚¾‚©‚炱‚êˆÈã–³—B
‚¢‚¢•û–@‚ð’m‚Á‚Ä‚½‚狳‚¦‚Ä‚ ‚°‚ÄB

831 F
Cygwin ‚ÍŽŽ‚µ‚Ä‚Ý‚½‚¯‚ǃCƒ“ƒXƒg[ƒ‰‚É’šd‚É‚¨’f‚肳‚ꂽ‚æB

832 F
‚½‚­‚³‚ñ‚Ìî•ñ‚ ‚肪‚Æ‚¤‚²‚´‚¢‚Ü‚·BŒ»ó‚ÅWindows‚ÉS‚é‚È‚çABruce”Å3.1.7‚ðŒp‘±‚µ‚Ä
Žg—p‚·‚é‚©ACygwin”Å‚Éæ‚芷‚¦‚é‚©AWindows Subsystem for Linux‚Å“®ì‚³‚¹‚é‚©‚Ì
‚¢‚¸‚ê‚©‚É‚È‚è‚»‚¤‚Å‚·‚ËB
Cygwin‚âWindows7‚Å‚ÌWindows Subsystem for Linux‚ÍA‚Ç‚¿‚ç‚à•Ê“rƒCƒ“ƒXƒg[ƒ‹‚ª•K—v
‚Æ‚Ì‚±‚Æ‚È‚Ì‚ÅAEê‚ÌŽ©PC‚Í‚Æ‚à‚©‚­ƒXƒNƒŠƒvƒg”z•zæ‚ÉiƒXƒNƒŠƒvƒg‚ð“®‚©‚·‚½‚ß‚¾‚¯‚Éj
“±“ü‚µ‚Ä‚à‚ç‚í‚È‚¢‚Æ‚¢‚¯‚È‚¢‚Ì‚Í‚¿‚å‚Á‚Ɠ‚»‚¤‚Å‚·B
Cygwin‚Ì“±“ü󋵂ÆWindows10‚Ö‚ÌØ‚è‘Ö‚¦ŽžŠú‚Ì—lŽq‚ðŒ©‚Â‚ÂA‚µ‚΂炭Bruce”Å3.1.7‚ð
Žg‚¤‚±‚Æ‚É‚µ‚Ü‚·B

833 F
ŽÀ‚Í•û–@‚ª–³‚¢‚킯‚Å‚Í‚È‚¢BƒVƒ“ƒOƒ‹ƒoƒCƒgƒ‚[ƒh‚È‚ç‚Å‚«‚éB‚Å‚à–{“–‚É‚â‚肽‚¢?
–{“–‚É^Œ•‚É•K—v‚Æ‚µ‚Ä‚¢‚é‚È‚çA‚±‚̃XƒNƒŠƒvƒg‚ŃeƒXƒg3‚ð‚â‚Á‚Ä‚Ý‚Ä‚Ù‚µ‚¢B
{
@@c = "[\\000-\\177]|[\\340-\\357][\\200-\\277][\\200-\\277]"
#@ print( length($0));
@@str = $0; print( gsub( c,"0",str));
@@print;
@@sub(/<tag>/, "");
@@sub(/<\/tag>/, "");
@@sub(/hello/, "ABC");
#@ sub(/.‚¤/, "U");
@@sub( sprintf("(%s)‚¤",c),"U")
@@print;
}

834 F
‚â‚Á‚Ï‚è klabaster gawk ‚Í‚æ‚­‰ð‚ç‚È‚¢B
$cat u2.awk
{
@@print( length($0))
@@sub(/‚¤/, "U")
@@print;
}
$LANG=C wine ../gawk64.exe -f u2.awk u2.txt > /dev/null
$LANG=ja_JP.EUC-JP wine ../gawk64.exe -f u2.awk u2.txt > /dev/null
$LANG=ja_JP.UTF-8 wine ../gawk64.exe -f u2.awk u2.txt > /dev/null
gawk64: u2.awk:3: sub(//, "U")
gawk64: u2.awk:3: ^ unterminated regexp
gawk64: u2.awk:4: sub(//, "U")
gawk64: u2.awk:4: ^ unexpected newline or end of string
$
UTF-8 ‚Åu‚¤v‚Í 3 ƒoƒCƒg‚¾‚©‚çAƒVƒtƒgJIS‚ʼnðŽß‚µ‚½Œ‹‰Ê
‚»‚ÌŒã‚ë‚Ì / ‚àƒ}ƒ‹ƒ`ƒoƒCƒg•¶Žš‚̈ꕔ‚É‚È‚é‚Ì‚¾‚낤‚©B
‚¢‚âAUTF-8 ‚ʼnðŽß‚µ‚Ä‚­‚ê‚È‚¢‚±‚Æ‚É•¶‹å‚ðŒ¾‚¢‚½‚¢‚ñ‚¶‚á‚È‚¢‚ñ‚¾B
UTF-8 ‚Å‘‚¢‚Ä‚ ‚é‚Ì‚É‚È‚º LANG=ja_JP.UTF-8 ‚ÌŽž‚¾‚¯ƒGƒ‰[‚É‚È‚é‚Ì‚¾‚낤B

835 F
‚±‚Ì‹LŽ–‚ðŒ©‚é‚©‚¬‚è‚Å‚ÍklabasterˆÈŠO‚ÌWindows”Ågawk‚Å‚àƒ_ƒ‚Á‚Û‚¢‚Å‚·
https://groups.google.com/forum/#!topic/comp.lang.awk/coXxXOpeoXU

836 F
>>748‚©‚ç‚̃ŒƒX‚ÅA$‚ª‰‰ŽZŽq‚¾‚Á‚½‚ÌH@‚Æ‚¢‚¤‚悤‚È‚Æ‚±‚낪‹C‚É‚È‚Á‚Ä
­‚µ’²‚ׂĂ݂½i’²‚ׂ½‚Æ‚¢‚¤‚Ù‚Ç‚Ìì‹Æ‚Í‚µ‚Ä‚È‚¢‚©jB
‚Ü‚¸‘ÐBŽèŽ‚¿‚Ì”û‚ÅŠm”FB
wƒvƒƒOƒ‰ƒ~ƒ“ƒOŒ¾ŒêAWKxiƒgƒbƒpƒ“@‰”Å‘æ7üj
‚³‚¢‚²‚̂܂Ƃ߂ʼn‰ŽZŽqˆê——‚É‹LÚB–{•¶’†(p8)‚Å‚Íu—“‚Íí‚É$1,$2‚̂悤‚É
ŽQÆ‚µ‚È‚­‚Ä‚Í‚¢‚¯‚È‚¢‚ÆŽv‚í‚ê‚Ä‚¢‚é‚©‚à‚µ‚ê‚È‚¢‚ªAŽÀ‚Í$‚Ì‚ ‚Æ‚É‚Í,—“‚Ì
”Ô†‚ðŽw‚µŽ¦‚·‚½‚ß‚Ì”CˆÓ‚ÌŽ®‚ð‘‚¢‚Ä‚à‚æ‚¢v‚Æ‘‚©‚ê‚Ä‚¢‚éB‚Ü‚½Ap46‚É‚Í
u—“•Ï”v‚Ì€‚Éu“ü—Ís‚Ì—“ifieldj‚Í,$1,$2‚©‚çŽn‚Ü‚Á‚Ä,$NF‚Æ‚¢‚¤–¼‚ŌĂ΂ê‚év
‚Æ‚Ì‹Lq‚ª‚ ‚éB
wsed & awk ƒvƒƒOƒ‰ƒ~ƒ“ƒOxiƒAƒXƒL[o”Å‹Ç@‰”Åj
‹Œ”ÅB–{•¶’†ip212j‚ÅuƒtƒB[ƒ‹ƒh‚ðŽQÆ‚µ‚½‚¢‚Æ‚«‚É‚ÍAƒtƒB[ƒ‹ƒh‰‰ŽZŽq$‚ðŽg‚¦‚΂悢v
‚Ü‚½ip217j‚ÅuƒtƒB[ƒ‹ƒh‚ðŽQÆ‚·‚é‚ɂ̓hƒ‹‹L†($)‰‰ŽZŽq‚ðŽg‚¤vAAppendixip471j‚Å
u‚»‚ꂼ‚ê‚̃tƒB[ƒ‹ƒh‚ÍA$1‚È‚ç‚Îʼn‚̃tƒB[ƒ‹ƒh‚Ì’l‚ðŽQÆ‚µAv‚Æ•\Œ»‚³‚ê‚Ä‚¢‚éB
Appendix‚̉‰ŽZŽqˆê——‚É‹LÚB
wAWK‚ð256”{Žg‚¤‚½‚ß‚Ì–{xiƒAƒXƒL[o”Å‹Ç@‰”Åj
Appendix‚ʼn‰ŽZŽqˆê——‚É‹LÚ‚³‚ê‚Ä‚¢‚邪A–{•¶ip65j‚Åu•ª‰ð‚³‚ꂽŠeƒtƒB[ƒ‹ƒh‚ÍA
$n‚Æ‚¢‚¤•Ï”in‚ÍAŽn‚߂̃tƒB[ƒ‹ƒh‚©‚燂É1,2,3...‚Æ‚È‚éB‚à‚¿‚ë‚ñ‘¦’l‚Ì‘ã‚í‚è‚É•Ï”‚ð
Žw’è‚·‚邱‚Æ‚à‰Â”\‚¾j‚ŃAƒNƒZƒX‚·‚邱‚Æ‚ª‚Å‚«‚év‚Æ‚ ‚éB‘¼‚̉ӊ‚Å‚à$n•Ï”‚Æ‘‚¢‚Ä‚ ‚é
‚Æ‚±‚낪‚ ‚éBp66‚ÅuŠeƒtƒB[ƒ‹ƒh‚ð•\‚·$n‚Å‚ ‚邪A‚È‚º‚±‚ñ‚È–¼‘O‚É‚È‚Á‚Ä‚¢‚é‚©‚²‘¶‚¶‚¾‚낤‚©H
ŽÀ‚Í‚±‚ê‚àUNIX•¶‰»‚©‚ç‚«‚Ä‚¢‚é‚Ì‚¾BUNIX‚Ì‘ã•\“I‚ȃVƒFƒ‹‚Å‚ ‚ésh‚âcshiÅ‹ß‚Å‚Íksh‚â
tcsh‚©‚ÈHj‚̃VƒFƒ‹ƒXƒNƒŠƒvƒg‚Ì‚È‚©‚ŃRƒ}ƒ“ƒhƒ‰ƒCƒ“ƒpƒ‰ƒ[ƒ^‚ð•\‚·•Ï”‚Æ‚µ‚Ä$n‚ªŽg—p‚³‚ê‚Ä
‚¨‚èi’†—ªj‚±‚ê‚É‚ ‚킹‚Äawk‚Å$n‚ªŽg—p‚³‚ê‚Ä‚¢‚é‚悤‚È‚Ì‚Å‚ ‚év‚Æ‘‚¢‚Ä‚ ‚éB
wAWKŽÀ‘H“ü–åxi‹Zp•]˜_ŽÐ@‰”Åj
>>765‚É‚ ‚é‚悤‚É“Á•Ê‚È•Ï”‚Æ‚µ‚Ĉµ‚í‚ê‚Ä‚¨‚èAƒŠƒtƒ@ƒŒƒ“ƒX‚É‚à$‚ª‰‰ŽZŽq‚Å
‚ ‚邱‚Æ‚Ì‹LÚ‚ª‚È‚¢B
i‘±‚­j

837 F
i‘±‚«j
ƒlƒbƒg‚Ìî•ñB2016.10.8Œ»ÝB
Gnu Awk ƒ†[ƒU[ƒYƒKƒCƒh/The GAWK Manual/Effective AWK Programming
gawk‚̉ðà‘Bƒo[ƒWƒ‡ƒ“ˆá‚¢‚ª‚ ‚é‚悤‚¾‚ªA–|–ó”Å‚Å–Ú‚É—¯‚Ü‚Á‚½‚à‚ÌB
u’蔂łȂ¢ƒtƒB[ƒ‹ƒh”Ô†v‚Ì€‚Åu‚ ‚éƒtƒB[ƒ‹ƒh‚ðŽQÆ‚·‚邽‚ß‚ÉAawkŒ¾Œê‚Å‚Ì”CˆÓ‚ÌŽ®‚ð
`$'‚ÌŒã‚ÅŽg‚¤‚±‚Æ‚ª‚Å‚«‚év‚Æ‹Lq‚³‚ê‚Ä‚¢‚éBu‰‰ŽZŽq‚Ì—D懈Êv‚Ì€‚ł͉‰ŽZŽq‚Æ‚µ‚Ä
•À‚ׂç‚ê‚Ä‚¢‚éB
man gawk
–|–ó”ÅAƒŠƒiƒbƒNƒXƒRƒ}ƒ“ƒh‚Æ‚¢‚¤ƒTƒCƒgiwww.linux-cmd.comj‚©‚çB
u“ü—̓ŒƒR[ƒh’†‚ÌŠeƒtƒB[ƒ‹ƒh‚Ì’l‚ÍA¶‚©‚ç $1, $2 “™‚Æ‚¢‚¤–¼‘O‚ÅŽQÆ‚Å‚«‚Ü‚·B
$0 ‚̓ŒƒR[ƒh‘S‘Ì‚Å‚·BƒtƒB[ƒ‹ƒh‚É’l‚ð‘ã“ü‚·‚邱‚Æ‚à‚Å‚«‚Ü‚·BƒtƒB[ƒ‹ƒh‚͒蔂¾‚¯‚Å‚È‚­A
•Ï”‚É‚æ‚Á‚ÄŽQÆ‚·‚邱‚Æ‚à‚Å‚«‚Ü‚·Bv‚Æ‚È‚Á‚Ä‚¢‚éB‰‰ŽZŽq‚Ì‚Æ‚±‚ë‚É‹LÚ‚ ‚èB
AWK Users JP
ƒTƒCƒg’†uawk Šî‘b•¶–@Å‘¬ƒ}ƒXƒ^[v‚̃y[ƒW‚Åu“ÁŽê•Ï”v‚Ì€‚É$0,$1`$NF‚Ìà–¾B
ƒtƒB[ƒ‹ƒhŽQÆ‚ÌŒê‚Í‚È‚¢B‚Ü‚½AƒŠƒtƒ@ƒŒƒ“ƒX“I‚ȉ‰ŽZŽq‚Ì‚Ü‚Æ‚ß‚Í‚È‚¢iHjB
ƒy[ƒWã•”‚Éu‚±‚Ì•¶‘‚Í‘‚«‚©‚¯‚Å‚·v‚Æ‚ ‚é‚Ì‚ÅA–¢®”õ‚Æ‚¢‚¤‚±‚Æ‚¾‚낤‚©B
IBM Knowledge Center
awkƒRƒ}ƒ“ƒh‚̃y[ƒWiwww.ibm.com/support/knowledgecenter/ja/ssw_aix_71/
com.ibm.aix.cmds1/awk.htmj‚Å‚ÍuƒŒƒR[ƒh‚ƃtƒB[ƒ‹ƒh‚É‚æ‚éƒtƒ@ƒCƒ‹ˆ—v‚Ì€‚Å
uŠeƒtƒB[ƒ‹ƒh‚̓tƒB[ƒ‹ƒh•Ï”‚É‚æ‚Á‚ÄŽQÆ‚³‚ê‚Ü‚·BƒŒƒR[ƒh‚Ìʼn‚̃tƒB[ƒ‹ƒh‚É‚Í $1 •Ï”A
2 ”Ԗڂ̃tƒB[ƒ‹ƒh‚É‚Í $2 •Ï”‚Æ‚¢‚¤‚悤‚ÉA•Ï”‚ªŠ„‚è“–‚Ä‚ç‚ê‚Ü‚·Bv‚Æ‚Ì‹LqB­‚µ‚¤‚µ‚ë‚Ì
•ûAuƒtƒB[ƒ‹ƒh•Ï”v‚Ì€‚Å‚àuƒtƒB[ƒ‹ƒh•Ï”‚ÍA$ (ƒhƒ‹‹L†) ‚Æ‚»‚ê‚É‘±‚­”’l‚Ü‚½‚Í”’lŽ®‚Å
Žw’肵‚Ü‚·Bv‚Æ‚ ‚éB$‚ª‰‰ŽZŽq‚Å‚ ‚邱‚Æ‚Ì‹LÚ‚Í‚È‚¢B
‚Ä‚ÈŠ´‚¶‚ÅAwƒvƒƒOƒ‰ƒ~ƒ“ƒOŒ¾ŒêAWKx‚Å‚àu—“•Ï”v‚Æ‚¢‚¤•\Œ»‚ª‚ ‚èAŒë‰ð‚µ‚»‚¤‚ÈŠ´‚¶‚Í‚·‚éB
‚Ü‚½A256”{–{‚É‘‚¢‚Ä‚ ‚é‚悤‚ɃVƒFƒ‹ƒXƒNƒŠƒvƒg’†‚̃pƒ‰ƒ[ƒ^‚Æ‚µ‚Ä$n‚ª‚ ‚邱‚Æ‚©‚çA$n‚ª
i“Á•Ê‚Èj•Ï”‚Æ‚µ‚Ä”FŽ¯‚³‚ê‚Ä‚µ‚Ü‚Á‚Ä‚¢‚é‚Ì‚Å‚Í‚È‚¢‚©A‚Æ‚à‘z‘œ‚·‚éBŒÂlƒTƒCƒg‚Ìawk‚̉ðà
ƒy[ƒW‚Å‚ÍA$n‚Æ‚¢‚¤•Ï”‚ɃtƒB[ƒ‹ƒh‚ª‘ã“ü‚³‚ê‚é‚Æà–¾‚µ‚Ä‚¢‚é‚Æ‚±‚ë‚à‚ ‚Á‚½B‚»‚̂悤‚É—‰ð‚µ‚Ä
ƒXƒNƒŠƒvƒg‚ð‘‚¢‚Ä‚à‚³‚µ‚Ä•s“s‡‚Í‚È‚¢‚¾‚낤‚ÈA‚Æ‚ÍŽv‚¤‚ªB

838 F
L”Í‚È’²¸‰³BGawk‚Ìrefcard‚Å‚à‚¿‚á‚ñ‚Æoperator‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚é‚È‚ B
‰‰ŽZŽq‚Æ–¾Šm‚É”FŽ¯‚µ‚Ä‚¢‚È‚­‚Ä‚àA$‚ÌŒã‚ÉŽ®OK‚ÆŽv‚Á‚Ä‚¢‚ê‚η‚µŽx‚¦‚È‚³‚»‚¤B

839 F
gawk4‚ÅŠÖ”ƒ|ƒCƒ“ƒ^‚Ý‚½‚¢‚È‚à‚ñ‚ª’ljÁ‚³‚ê‚Ü‚µ‚½‚¯‚ÇA‚±‚êlength‚Æ‚©substr‚Ì
‘gž‚ÝŠÖ”‚â@load‚µ‚½Ž©ìdll‚ÌŠÖ”‚Æ‚©‚É‚àŽg‚¦‚é‚ñ‚Å‚·‚Ë
ˆÄŠO•Ö—˜‚©‚à
@load "hage.dll"
@BEGIN{
@kumi = "length"
@func = "hagefunc"
@ng[1] = "substr"
@print @kumi("ABC")
@print @func("œc Ü ƒ~ ")
@print @ng[1]("XYZ", 1, 1) # ”z—ñ‰z‚µ‚ɌĂڂ¤‚Æ‚µ‚½‚çsyntax errorEEEŽc”O
}

840 F
>>755
‚±‚¤‚¢‚¤‰ß‘aƒXƒŒ‚Å–³‘Ê‚É“Ë‚Á‚©‚©‚Á‚Ä‚­‚é‚â‚‚ނ©‚‚­‚ñ‚¾‚ªR

841 F
>>840
ƒu[ƒƒ‰ƒ“‚©‚æ‚—‚—‚—

842 F
_‚¨‚Í‚°‚¾[I^

843 F
http://imgur.com/a/1WEjn

844 F
‚‚—‚‹ƒXƒNƒŠƒvƒg‚ð‚bƒ\[ƒX‚É•ÏŠ·‚µ‚ăRƒ“ƒpƒCƒ‹‚·‚邽‚ß‚Ìu‚‚—‚‹‚v‚Æ‚¢‚¤ƒc[ƒ‹‚Å‚Å‚«‚邾‚¯ŠÈ’P‚É‚t‚s‚e|‚WƒTƒ|[ƒg‚³‚¹‚é•û–@‚ð’m‚肽‚¢‚Å‚·B
ƒlƒbƒg‚ÅŽUX’²‚ׂ܂µ‚½‚ª‚È‚¢‚悤‚Å‚·H

845 F
‚±‚̃XƒŒ‚à‚P‚OŽü”N‚©

846 F
>>844
‚»‚ꂪ‚ ‚È‚½‚ÌŒ»Ý‚ÌŽÀ—Í‚¾‚Á‚½‚Æ‚¢‚¤‚±‚Æ‚Å‚·
‚¨”æ‚ê—l‚Å‚µ‚½

847 F
gawk‚ɑΉž‚µ‚Ä‚é‚È‚ç‘åä•v‚Á‚Ä‚±‚Æ‚©‚ÈH
ascii‚µ‚©l‚¦‚Ä‚¢‚È‚¢‚È‚çAƒ\[ƒX‘Sƒ`ƒFƒbƒNcB
—v‚·‚é‚ÉA“ú–{Œê‰»‚·‚é‚ñ‚¾‚낤‚¯‚ÇB
‘S‘R•Ê‚ÌŒ¾Œê•ÏŠ·‚É‚¿‚å‚Á‚Æ™ù‚ñ‚¾‚±‚Æ‚ª‚ ‚é‚ñ‚¾‚¯‚ÇA
»•i‰»‚µ‚¿‚á‚Á‚Ä‚©‚çƒ_ƒuƒ‹ƒoƒCƒgl—¶‚µ‚Ä‚È‚¢‚±‚Æ‚ª‚í‚©‚Á‚ÄA‚©‚È‚è–Ê“|‚¾‚Á‚½B
‚Æ‚è‚ ‚¦‚¸•ÏŠ·‚µ‚Ä‚©‚çAƒ\[ƒXŒ©‚Ä’¼‚·‚Ù‚¤‚ª‘‚©‚Á‚½‚èiÎ
‚ª‚ñ‚΂Á‚Ä‚ËB

848 F
awk‚Å@$1,$2...$6 ‚±‚ñ‚Èo—͂𫉺‚É‚µ‚½‚¢‚ñ‚¾‚¯‚Ç@‚Ç‚¤‚·‚ê‚΂¢‚¢‚Å‚·‚©‚ËH
470230
470290
«
002347
002479

849 F
GNU awk ‚Ì asort() ‚ðŽg‚¤‚Æ‚©B
printf '470230\n470290\n' |
gawk -vFS= -vOFS= '{
for(i=1;i<=NF;i++){
arr[i]=$i
};
asort(arr);
for(i=1;i<=NF;i++){
$i=arr[i]
};
print
}'

850 F
‚ ‚肪‚Æ‚¤
gawk ‚¢‚ê‚È‚¢‚Å‚È‚ñ‚Æ‚©‚È‚ç‚È‚¢‚©‚È

851 F
‚¤`‚ñA‚»‚¤‚È‚é‚Æ awk ‚ðŽg‚í‚È‚­‚Ä‚à‚¢‚¢‚©‚È
printf '470230\n470290\n' |
while read -r n
do
echo "$n" | grep -o . | sort -n | tr -d '\n'; echo
done

852 F
>>841
‚¾‚©‚çƒu[ƒƒ‰ƒ“‚Æ‚©‚»‚¤‚¢‚¤‚ÌŠÖŒW‚È‚¢‚©‚çR‚Á‚ÄŒ¾‚Á‚Ä‚ñ‚¾‚ëƒJƒX
R

853 F
>>845
”S’…‚ª10”NˆÊ‰„–½‚µ‚Ä‚à‰½‚à‚·‚²‚­‚Ë‚¦‚æ
“Ë‚Á‚©‚©‚Á‚Ä‚«‚½‚Ô‚¿‚±‚ë‚·‚¼ŽG‹›R>>841

854 F
>>841
ƒu[ƒƒ‰ƒ“‚Æ‚©‚¶‚á‚È‚­‚ÄR‚Á‚ÄŒ¾‚Á‚Ä‚ñ‚¾‚©‚çRƒ{ƒP

855 F
‚¨”æ‚ê—l‚Å‚µ‚½

856 F
˜A‘z”z—ñ‚Å
echo '470230' | awk 'BEGIN{FS=""}{for(i=1;i<=NF;i++){a[$i]++}for(i=0;i<=9;i++){for(j=1;j<=a[i];j++){printf("%s", i)}}printf("\n")}'
002347

857 F
Šù‚ɔے肳‚ê‚Ä‚¢‚邪gawk4‚ª‚à‚µŽg‚¦‚½‚ç
awk '{ORS="";PROCINFO["sorted_in"]="@val_num_asc";x=split($0,a,"");for (i in a)print a[i];print "\n"}'

858 F
Å‹ß‚Ì gawk ‚È‚çƒCƒ“ƒNƒ‹[ƒhƒtƒ@ƒCƒ‹‚ª—pˆÓ‚³‚ê‚Ä‚Ä join ‚Æ‚©Žg‚¦‚½‚è
gawk -vFS= -vOFS= -i join.awk '{split($0,a,"");asort(a);print join(a,1,length(a),SUBSEP)}'

859 F
# gawk4‚Ì“Çž‚݃^ƒCƒ€ƒAƒEƒg‹@”\A‚¯‚Á‚±‚¤•Ö—˜‚»‚¤EEE‚¾‚¯‚ÇWindows‚ÍCygwin”Å‚¶‚á‚È‚¢‚ÆŽg‚¦‚È‚¢BŽc”O–³”OB
BEGIN{
@ PROCINFO["/dev/stdin", "READ_TIMEOUT"] = 180000
@ print "3•ªŠÔ‘Ò‚Á‚Ä‚â‚é"
@ getline t < "/dev/stdin"
@ if (t=="ƒoƒ‹ƒX") {
@ @ print "‚ ‚ c‚ ‚ c–Ú‚ª‚ ‚Ÿ‚Ÿ‚Ÿ‚Ÿ‚Ÿ`I"
@ }
@ else {
@ @ print "ŽžŠÔ‚¾I“š‚¦‚ðu‚±‚¤I"
@ }
}

860 F
Ž©ì‚Ì“Çž‚݃p[ƒTextension‚ÅgzŒ`Ž®‚̃tƒ@ƒCƒ‹‚ðH‚¦‚é‚悤‚É‚µ‚Ä‚Ý‚½‚¯‚Ç
ƒp[ƒT‚͈ê“x‚ɂЂƂ‚µ‚©ƒ[ƒh‚Å‚«‚È‚¢ÝŒv‚炵‚­iƒ\[ƒX‚Å‚»‚¤‚È‚Á‚Ä‚½j
“¯‚¶“Çž‚݃p[ƒTŒ`Ž®‚Ìxmlƒ‰ƒCƒuƒ‰ƒŠ‚Æ‚Í•¹—p‚Å‚«‚È‚©‚Á‚½
‚¿‚å‚Á‚ÆŽg‚¢‚É‚­‚¢‚È‚ EEE

861 F
4.2.0Beta‚ ‚°

862 F
ƒtƒ@ƒCƒ‹‚ÌI’[ŠÖŒW‚Ì“ä‚̃Gƒ‰[‚É’¼–Ê
u‰½‚Ås––‚ªŒ‡‚¯‚éH•ª‚©‚ç‚ñA‘S‘R•ª‚©‚ç‚ñ‚¼Iv
‚Ɩウ‚Ä‚¢‚½‚çA
‚¢‚‚̊Ԃɂ©vim‚Ìݒ肪•Ï‚É‚È‚Á‚Ä‚¢‚ÄA
‘‚¢‚½ƒtƒ@ƒCƒ‹‚ªƒfƒtƒH‚Ås––‚É\r‚ª—ˆ‚é
‚悤‚É‚È‚Á‚Ä‚¢‚½B
brew ‚ŃCƒ“ƒXƒg[ƒ‹vimƒCƒ“ƒXƒg[ƒ‹‚µ‚½‚Æ‚«
–­‚ÈÝ’è‚É‚È‚Á‚½‚Ì‚©H

‚¢‚â‚Ëawk‚̃XƒNƒŠƒvƒg‚ÅA
‹óƒtƒB[ƒ‹ƒh‚ª\r‚É‚È‚Á‚½‚è‚Æ‚©
macOS‚È‚Ì‚É•Ï‚¾‚È‚ ‚ÆŽv‚Á‚Ä‚¢‚½‚Ì‚¾‚ªc
ƒVƒXƒeƒ€ŠOvimŽg‚¤‚Æ‚«‚Í—v’ˆÓ‚©B

863 F
‚¤‚§[‚ÁA—ÑŒç‚Ìnumbers‚Å‘‚«o‚µ‚½CSVƒtƒ@ƒCƒ‹‚ª
DOS‰üs‚É‚È‚Á‚Æ‚écã©‚¾

864 F
‚¨”æ‚ê—l‚Å‚µ‚½

865 F
>>755
•’i˜b‘è‚È‚­3”N‚à‘±‚±‚¤‚ª‚ׂ‚ɂ·‚²‚­‚È‚¢‚Ë

866 F
BEGIN{for(i=1;i<=10000000;i++){printf "%08d", i > "test" } close("test)} ‚ÌŽÀs‚É‚©‚©‚鎞ŠÔ‚ð
4.1.4‚Æ4.2.0‚Å”äŠr‚·‚é‚ÆA4.2.0‚Ì‚Ù‚¤‚ª”{‹ß‚­‘¬‚­‚È‚Á‚Ä‚é‚Ë
fwrite‚̃ƒbƒN‚ª‚Ç‚¤‚½‚ç‚̉e‹¿‚È‚ñ‚¾‚낤‚¯‚Ç

867 F
‰ù‚©‚µ‚¢‚È‚ŸB
AWK‚ÍŽ©—R‚ÉŒ»ŽÀ“I‚ÈŒÀ“x‚Í‚ ‚邯‚ÇA‘‚¢‚Ä‚ÄŠy‚µ‚¢Œ¾Œê‚¾‚Á‚½B

868 F
‚¨”æ‚ê—l‚Å‚µ‚½

869 F
ID‚ªgawk‚È‚Ì‚Å—ˆ‚Ü‚µ‚½

870 F
AWK‚Á‚ÄŠî–{“I‚ÉUnicode‚ɂ͑Ήž‚µ‚Ä‚é‚ñ‚¾‚æ‚ËB
GNU‚É‚µ‚ëBSD‚É‚µ‚ëB

871 F
’uŠ·”Ÿ”‚Ì‘æ“ñ‰¼ˆø”‚É[ƒoƒbƒNƒXƒy[ƒX][’uŠ·‘ÎÛ‚Ì•¶Žš—ñ]‚Ý‚½‚¢‚É‚µ‚½‚¢Žž‚Í
gsub(/foo/, "\\\\&", $n)
‚Á‚Ä‚µ‚È‚¢‚Æ‚¢‚¯‚È‚¢‚ñ‚¾‚ËB
gsub(/foo/, "\\bar", $n)
‚ª foo -> \bar ‚¾‚Á‚½‚ñ‚Å foo -> \foo ‚Í
gsub(/foo/, "\\&", $n)
‚Å‚¢‚¢‚ÆŽv‚Á‚Ä”¼Žž’ö›Æ‚Á‚½B

872 F
>>863
‚»‚ꊩ‚É]‚Á‚½‚¾‚¯‚¾‚ÆŽv‚¤‚ªB
http://www.ietf.org/rfc/rfc4180.txt

873 F
‚ ‚és‚É@20 ‚Æ 34@‚Æ‚Í‚¢‚Á‚Ä‚é
‚±‚Ìs‚²‚ÆœŠO‚µ‚½‚¢‚¯‚ÇEEE
@

874 F
grep -v '@20 ‚Æ 34@'

875 F
‚±‚¤‚©‚È
gawk "$0!~/20|34/{print}"

876 F
AWK ƒvƒƒOƒ‰ƒ€‚ÌŠî–{\‘¢‚Æ‚È‚Á‚Ä‚¢‚éuƒpƒ^[ƒ“‚ƃAƒNƒVƒ‡ƒ“‚Ì‘Îv‚Ì‚¤‚¿A
ƒAƒNƒVƒ‡ƒ“‚ªÈ—ª‚³‚ê‚Ä‚¢‚éꇂ͓ü—Ís‚ª‚»‚Ì‚Ü‚Üo—Í‚³‚ê‚éB
‚Ü‚½ƒpƒ^[ƒ“‚ª’Pˆê‚̳‹K•\Œ»‚Å‚ ‚éꇂÍA‚»‚̳‹K•\Œ»‚Æ $0 ‚Æ‚ÌƇ‚ªs‚í‚ê‚éB

gawk '!/20‚Æ34/'
gawk '!/20|34/'

877 F
‚±‚Ò‚Ø‚µ‚Ä‚â‚Á‚Ä‚Ý‚½‚¯‚Ç@—¼•ûÁ‚¦‚¿‚Ⴄ‚ñ‚¾‚æ‚Ë

20@‚Æ 34‚ª‚ ‚Á‚½ê‡@o—Í‚µ‚È‚¢
•Ð•û‚Å‚à‚ ‚ê‚Î@o—Í‚·‚é

awk '!/01 / && !/03 /' @‚±‚ê‚à—¼•ûÁ‚¦‚Ä‚éEE

878 F
>>877
u20 ‚Æ 34 ‚𗼕ûŠÜ‚ÞŽž‚¾‚¯o—Í‚µ‚È‚¢B•Ð•û‚¾‚¯‚ÌꇂÍo—Í‚·‚éBv
‚»‚¤Œ¾‚¢‚½‚¢‚Ì‚©?
gawk '!(/20/&&/34/)'

879 F
‚ ‚肪‚Æ‚¤@
ij‚Í‚«‚ª‚‚©‚È‚©‚Á‚½EE

880 F
–l‚Ì’m‚臂¢‚Ì’m‚臂¢‚ª‚Å‚«‚½ƒpƒ\ƒRƒ“ˆê‘ä‚Å‚¨‹àŽ‚¿‚É‚È‚ê‚é‚â‚è•û
–ð‚É—§‚‚©‚à‚µ‚ê‚Ü‚¹‚ñ
ƒO[ƒOƒ‹‚ÅŒŸõ‚·‚é‚Æ‚¢‚¢‚©‚àwƒlƒbƒg‚ʼn҂®•û–@@ƒ‚ƒjƒAƒŒƒtƒkƒmx

0VDE5

881 F
splitŠÖ”‚æ‚è$0‚Ö‘ã“ü‚µ‚½‚Ù‚¤‚ª‘¬‚¢age

882 F
‚»‚ñ‚Ȃ킯‚È‚¢‚—

883 F
02P

884 F
0VDE5

885 F
ƒVƒFƒ‹ƒXƒNƒŠƒvƒg‘‚¢‚Ä‚Ä‚Ç‚¤‚µ‚悤‚à‚È‚¢‚Æ‚«‚¾‚¯Žg‚Á‚Ä‚é

886 F
AWK‚Á‚Äd‚¢‚ÆŸŽè‚ÉŽv‚Á‚Ä‚½‚¯‚ljºŽè‚ɃVƒFƒ‹‚ŧŒä\•¶ì‚é‚æ‚è‘‚¢‚Ë
–Þ‚àWSL‚Å‚â‚Á‚Ä‚é‚Ì‚Åfork‚ÌŽžŠÔ‚Æ‚©‚»‚¤‚¢‚¤–â‘è‚©‚à‚µ‚ê‚È‚¢‚ªB

887 F
>>886
d‚¢‚ÆŒ¾‚Á‚Ä‚àC”䂾‚©‚ç‚ÈB
¡Žž‚Ì’´‘å•x‹Œ¾ŒêPython‚âRuby‚ƂȂ瓯’ö“x‚Å‚à‚¨‚©‚µ‚­‚Í‚È‚¢B

Cygwin‚Ìsh‚ªd‚©‚Á‚½‚Ì‚Í‚²‘¶‚¶‚Ì’Ê‚èfork‚ªŒ´ˆö‚¾B
‹C‚É‚È‚é‚È‚çVirtualBox“™‚ÅlinuxŠÂ‹«‚ð\’z‚µ‚Ä‚»‚Ìã‚ŃeƒXƒg‚µ‚Ä‚Ý‚ê‚΂¢‚¢B

888 F
gawk4‚É‚Ä”z—ñ‚Ì”z—ñ‚É‘¶Ý‚·‚é‘S—v‘f”‚ð
ƒJƒEƒ“ƒg‚·‚éŠÖ”‚ðì‚Á‚½‚ñ‚Å‚·‚ªA
‚à‚Á‚Æ‘‚¢ƒR[ƒh‚É‚È‚ç‚È‚¢‚Å‚µ‚傤‚©H
‚Ç‚È‚½‚©ƒqƒ“ƒg‚ð‚­‚¾‚³‚¢B‚¨Šè‚¢‚µ‚Ü‚·B

function count_array(arr, n, i) {
for (i in arr) {
if (isarray(arr[i])) count_array(arr[i], n);
else n[0]++;
}
return n[0];
}

889 F
length(arr) ‚Ń_ƒ‚È‚ÌH

890 F
886‚Å‚·B
ƒ_ƒ‚È‚ñ‚Å‚·B
BEGIN {
a[1] = 1;
a[2][1] = 21;
a[2][2] = 22;
a[3] = 3;
a[4][1][1] = 411;
a[4][2] = 42;
a[4][3][2][1] = 256;
for (i = 0; i < 9; i++) b[i] = i;
c["foo"]["corge"] = "grault";
c["foo"]["bar"] = "garply";
c["baz"]["corge"] = "waldo";
c["baz"]["quux"] = "fred";
print "length(a) = " length(a);
print "length(a) = " length(b);
print "length(a) = " length(c);
print "count_array(a) = " count_array(a);
print "count_array(b) = " count_array(b);
print "count_array(c) = " count_array(c);
}
length(a) = 4
length(b) = 9
length(c) = 2
count_array(a) = 7
count_array(b) = 9
count_array(c) = 4
Ä‹A‚ðŽg‚¤ˆÈŠO‚É•û–@‚ª‚ ‚ê‚ÎA
‚ÆŽv‚¢Ž¿–₵‚½ŽŸ‘æ‚Å‚·B

891 F
—v‘f‚ð’ljÁ‚·‚é‚Æ‚«‚É
É°ÄÞ–ˆ‚ÉWŒv’l‚ª•K—v‚È‚ç‚»‚ꂼ‚ê‚ÌÉ°ÄÞ–ˆ‚ÌWŒv’l‚ð•Û‘¶‚µ‚Æ‚¯‚΂¢‚¢
‚»‚¤‚·‚ê‚ÎWŒv‚µ‚È‚¨‚·•K—v‚È‚¢

’´‘¬‚¢Ê½Þ
WŒv‚µ‚È‚¢‚©‚ç‚È

892 F
‚±‚¤‚¢‚Á‚½WŒv’l‚ª‚Ù‚µ‚¢‚Ì‚Í•ª‚©‚é

aho(9)
„°aho1(5)
„«„°aho11(3)
„«„«„°aho111(1)
„«„«„¯aho112(1)
„«„¯aho12(1)
„¯aho2(3)
@@„°aho21(1)
@@„¯aho22(1)

length‚Å‚ÍA‚«‚Á‚Æ‚±‚ñ‚ÈŠ´‚¶‚Å‚µ‚©‚Æ‚ê‚È‚¢

aho(2)
„°aho1(2)
„«„°aho11(2)
„«„«„°aho111(n/a)
„«„«„¯aho112(n/a)
„«„¯aho12(n/a)
„¯aho2(2)
@@„°aho21(n/a)
@@„¯aho22(n/a)

893 F
>>890
length‚ÍA”z—ña‚Ì—v‘f‚É”z—ñ‚ª‚ ‚é‚Æ—v‘f‚Æ‚µ‚Ä‚Ì”z—ñ‚Ì
’†‚Ì—v‘f”‚܂ł̓JƒEƒ“ƒg‚µ‚È‚¢A‚â‚肽‚¢‚Ì‚Í—v‘f‚Æ‚µ‚Ä‚Ì”z—ñ‚É
ŠÜ‚Ü‚ê‚é—v‘f‚àƒJƒEƒ“ƒg‚µ‚½‚¢A‚Æ‚¢‚¤‚±‚Æ‚©B

function count_array2(arr, cnt, i) {
n=0;
for (i in arr) {
if(isarray(arr[i])){
cnt+=length(arr[i]);
}
else n++;
}
return n;
}
‚¾‚Æ

a[1] = 1;
a[2][1] = 21;
a[2][2] = 22;
a[3] = 3;
a[4][1][1] = 411;
a[4][2] = 42;
a[4][3][2][1] = 256;
a[4][3][3][2] = 257;

‚Ý‚½‚¢‚È‚Ì‚Å‚¤‚Ü‚­‚¢‚©‚È‚¢i1”Ô–Ú‚Æ2”Ô–Ú‚Ì“Y‚¦Žš(?)‚ª“¯‚¶jB
arr[i][j]...‚Æ‘±‚¯‚ê‚Îiʼn‚Élength(arr)‚Å‘±‚¯‚é[‚³‚ðŒˆ‚ß‚Äj
‚¢‚¯‚é‚悤‚ÉŽv‚¤‚ªA‚¾‚Á‚½‚çÄ‹A‚·‚é‚Ì‚ª‘f’¼‚©B

894 F
886‚Å‚·B889‚³‚ñ‚±‚ñ‚ÈŠ´‚¶‚Å‚µ‚傤‚©H
BEGIN {
addnode(a, "1-1", "start");
addnode(a, "1-2", "done");
addnode(a, "1-3", "result");
addnode(a, "1-4", "print");
addnode(a, "2", "count");
addnode(a, "3-1-1", "return");
for (i in a[1]) print "a[1][" i "] = " a[1][i];
print "a[2] = " a[2];
print "a[3][1][1] = " a[3][1][1];
print "\n_ele_sum = " _ele_sum;
}
function addnode(arr, i, val, p) {
ct = split(i, list, "-");
switch (ct) {
case 1: arr[list[1]] = val; break;
case 2: arr[list[1]][list[2]] = val; break;
case 3: arr[list[1]][list[2]][list[3]] = val; break;
default:
}
_ele_sum++;
}
a[1][1] = start
a[1][2] = done
a[1][3] = result
a[1][4] = print
a[2] = count
a[3][1][1] = return
_ele_sum = 6

895 F
886‚Å‚·B
p‚Æ‚©ŠÖŒW‚È‚¢ƒpƒ‰ƒ[ƒ^“ü‚ê‚Ä‚µ‚Ü‚Á‚Ä‚²‚ß‚ñ‚È‚³‚¢B
addnode(a, "1-5-1", "connot");
‚±‚ꂪ‚Å‚«‚Ü‚¹‚ñB
a["5"]‚ªƒXƒJƒ‰[‚¾‚ÆŒ¾‚Á‚Ä‚¢‚Ü‚·B

896 F
’ù³a["1"]["5"]‚ªƒXƒJƒ‰[‚Ì•¶–¬‚¾‚ÆŒ¾‚Á‚Ä‚¢‚Ü‚·B‚Å‚µ‚½

897 F
886‚Å‚·
for (i in a[1]) print "a[1][" i "] = " a[1][i];
‚Åa[1][5][1]‚ªˆø‚Á‚©‚©‚Á‚Ä‚¢‚½‚悤‚Å‚·B
Ž©”š‚Å‚µ‚½B‚·‚Ý‚Ü‚¹‚ñB

898 F
886‚Å‚·B
eƒm[ƒh–ˆ?‚É•Û‘¶‚·‚é•û–@‚ª‚Ü‚¾‚í‚©‚è‚Ü‚¹‚ñ‚ªA
–¾“úˆÈ~l‚¦‚Ü‚·B
‚Ý‚È‚³‚ñA‚²‹¦—Í‚ ‚肪‚Æ‚¤‚²‚´‚¢‚Ü‚µ‚½B

899 F
gawk4‚Å‚Æ‚É‚©‚­‘¬‚¢‚Ì‚ª—Ç‚¢‚È‚çc‚ÅŠg’£ŠÖ”ì‚é‚Ì‚ª—Ç‚¢‚©‚Æi”½‘¥Hj

flatten_array_typedŠÖ”i4.1.4‚Íflatten_arrayŠÖ”j‚Åawk_flat_array_t\‘¢‘̂̃ƒ“ƒo•Ï”count‚É—v‘f”‚ª“ü‚è‚Ü‚·‚Ì‚Å
—v‘f‚ªAWK_ARRAY‚È‚çÄ‹A‚·‚é‚悤‚Ɉ—‚·‚ê‚Îo—ˆã‚ª‚è

API‚ÌŽg‚¢•û‚Í
extension\rwarray.c‚Æ‚©
https://www.gnu.org/software/gawk/manual/html_node/Flattening-Arrays.html#Flattening-Arrays‚ðŽQl‚É

gawk‚¾‚¯‚Å‚â‚éê‡A‚à‚µ”z—ñ‚Ì—v‘f”‚ª10–œ‚Æ‚©100–œ‚ ‚é‚Ì‚È‚çAŠÖ”‚̈ø”‚ðo—ˆ‚邾‚¯Œ¸‚炵‚Ä
ŠÖ”“à‚©‚çƒOƒ[ƒoƒ‹•Ï”‚ð’¼ÚŽQÆ‚µ‚½‚Ù‚¤‚ª‘¬‚­‚È‚é‚ÆŽv‚¢‚Ü‚·

900 F
‚à‚Æ‚à‚Æ“Y‚¦Žš‚ª‚·‚ׂĕ¶Žš—ñ‚Å•Û‘¶‚·‚éŽd—l‚Æ‚¢‚¤‚Ì‚Í‚µ‚Á‚Ä‚Í‚¢‚½‚ª
‘½ŽŸŒ³”z—ñ‚Íaho[i,j]‚Æ‚¢‚¤Œ`Ž®‚É‚µ‚ÄH•v‚µ‚ÄŽg‚¦‚Æ‚¢‚¤‚±‚Ƃ炵‚¢‚È

awk‚Å‘½ŽŸŒ³”z—ñ‚È‚ñ‚©Žg‚Á‚½‚±‚Æ‚È‚¢‚©‚ç’m‚ç‚ñ‚©‚Á‚½‚í

‚Æ‚¤‚¢Ü¹‚Å‚É‚»‚ÌŒ`Ž®‚Å‘½ŽŸŒ³”z—ñ‚ðlength‚Å‚Æ‚é‚Æ>>888‚Ŏ擾‚µ‚½‚¢’l‚É‚È‚é
“–‘R‚Æ‚¢‚¦‚Γ–‘R
“Á’è‚ÌŽŸŒ³‚Ì—ñ‚¾‚¯‚Ì‚Æ‚è‚©‚½‚Í‚æ‚­‚í‚©‚ç‚ñ@‚Æ‚ê‚ñ‚Ì‚©ºÚ

@http://www.kt.rim.or.jp/~kbk/gawk-30/gawk_12.html#SEC119
@Using Numbers to Subscript Arrays

@@”z—ñ‚ɂ‚¢‚Äd—v‚È‚Ì‚ÍA”z—ñ‚Ì“Y‚¦Žš‚Íí‚É •¶Žš—ñ‚Æ‚µ‚Ĉµ‚í‚ê‚é‚Æ‚¢‚¤‚±‚Æ‚Å‚ ‚éB
@@”z—ñ‚Ì“Y‚¦Žš‚É”Žš‚ðŽg‚Á‚½ê‡A‚»‚ê‚Í“Y‚¦Žš•t‚¯‚ÉŽg‚í‚ê‚é‘O‚É •¶Žš—ñ‚É•ÏŠ·‚³‚ê‚é

@http://www.kt.rim.or.jp/~kbk/gawk-30/gawk_12.html#SEC121
@Multi-dimensional Arrays

@@‘½ŽŸŒ³”z—ñ‚Æ‚ÍA”z—ñ—v‘f‚ÌŽw’è‚ð•¡”‚Ì“YŽš‚Ì•À‚Ñ‚É‚æ‚Á‚Äs‚¤”z—ñ‚Å‚ ‚éB—Ⴆ ‚ΓñŽŸŒ³‚Ì”z—ñ‚Í“ñ‚‚̓YŽš‚ð•K—v‚Æ‚·‚éB
@@ˆê”Ê“I‚È(awk‚àŠÜ‚ß‚½‘命”‚Ì Œ¾Œê‚Å‚Í) “ñŽŸŒ³”z—ñ‚Ì—v‘f‚ɑ΂·‚éŽQÆ‚Í grid[x,y]‚±‚Ì‚æ ‚¤‚És‚¤B (grid‚Í”z—ñ‚Ì–¼‘O)

@@ƒZƒpƒŒ[ƒ^‚É‚Í‘g‚Ýž‚Ý•Ï”SUBSEP‚ÉŠi”[ ‚³‚ê‚Ä‚¢‚é’l‚ªŽg‚í‚ê‚éB

901 F
>>900
‚»‚ê‚𓥂܂¦‚Ä>>888‚Å
> gawk4
‚Æ‚í‚´‚í‚´‚±‚Æ‚í‚Á‚Ä‚¢‚é‚ñ‚¶‚á‚È‚¢‚Ì?

902 F
‚Ü‚¸“ü—Í‚©‚瑽ŽŸŒ³”z—ñ‚ð“Çž‚Þˆ—‚Å‚àì‚Á‚Ä‚Ý‚é‚©
‚Å‚«‚é‚Ì‚©‚ª‚æ‚­•ª‚©‚ç‚ñ

ºÚ‚ª‚·‚ñ‚È‚è‚Å‚«‚È‚¢‚ƺڎ©‘Ì‚ªŽg‚¦‚é¼ÛÓÉ‚É‚È‚ç‚È‚»‚¤‚¾‚µ‚È

ýÄÃÞ°À‚Íì‚Á‚Ä‚Ý‚½
https://ideone.com/Sir0IE

awk‚Ì‚±‚Ì‘½ŽŸŒ³”z—ñ‚ɂ‚¢‚Ä‚Ù‚©‚Ì‚Æ‚±‚Å‘‚¢‚Ä‚ ‚é‚Ì“Ç‚ñ‚Å‚Ý‚é‚Æ
FX‚Æ–Ê“|‚È‚±‚Æ‚ª‚¨‚«‚é‚Í‚Ì‚Í•ª‚©‚Á‚½

“Á‚É–â‘肪‚¨‚«‚»‚¤‚Ȃ͈̂ê“x”z—ñ‚⽶װ‚Å—v‘f‚ð’ljÁ‚·‚é‚ÆA
‚»‚Ì”z—ñ‚⽶װ‚ð•Ï‚¦‚Äã‘‚«‚·‚éꇖ¾Ž¦“I‚É‚»‚ê‚ð휂µ‚È‚¢‚Æã‘‚«‚µ‚ÄŽg‚¦‚È‚¢

‚«‚Á‚Æ‚ÈÉ°ÄÞ‚ð휂·‚é‚Æ‚«‚Í‚»‚Ì—v‘fÞ‚©‚ç’H‚Á‚Ĉê”Ô[‚¢‚Æ‚±‚©‚çÄ‹A“I‚É휂µ‚È‚¢‚ÆŽcŠ[‚ªŽc‚é
c‚ÌÒÓØØ°¸‚Æ“¯‚¶‚±‚Æ‚ª‹N‚«‚é‚Æ„’肳‚ê‚é

‚¢‚Ü‚¢‚¿‚±‚Ì‘½ŽŸŒ³”z—ñ‚ÉŽg‚¢“¹‚ª‚ ‚é‚Ì‚©‚Ç‚¤‚©‚ª•ª‚©‚ç‚È‚¢

903 F
lisp‚ªÅ“K
awk‚Í•s“K

904 F
https://ideone.com/PFBwQU

‚Ç‚¤‚É‚©‚µ‚Ä“®“I‚É”z—ñ‚ð\¬‚Å‚«‚È‚¢‚©’²‚ׂĂ݂½‚ª
‚â‚è‚©‚½‚ª•ª‚©‚ç‚ñ

>>894‚ÌŽ¿–₵‚Ä‚é‚Ì‚ª‘‚¢‚½•û–@‚Å
ˆê’U‘½ŽŸŒ³”z—ñ‚ð“Ç‚Þž‚ނ悤‚É‚Í‚µ‚Ä‚Ý‚½

Ž¿–₵‚Ä‚é‚Ì‚ª—~‚µ‚¢‚Æ‚¢‚Á‚Ä‚é—v‘f‚Ì”‚Í
Œ‹‹Ç“ü—Í‚Ìs”‚Æ“¯‚¶‚É‚È‚é

905 F
https://ideone.com/zTUFL2

switch•ª‚Ìcase‚ª1‚­‚È‚©‚Á‚½‚©‚ç’ljÁ‚µ‚Æ‚¢‚½

906 F
>>902
> ‚«‚Á‚Æ‚ÈÉ°ÄÞ‚ð휂·‚é‚Æ‚«‚Í‚»‚Ì—v‘fÞ‚©‚ç’H‚Á‚Ĉê”Ô[‚¢‚Æ‚±‚©‚çÄ‹A“I‚É휂µ‚È‚¢‚ÆŽcŠ[‚ªŽc‚é
delete a ‚Í a[1][2] ‚â a[3][4][5] ‚È‚Ç‚ÌŽq”z—ñŠÜ‚Þ”z—ña‘S‘Ì‚ÌŽg—pƒƒ‚ƒŠ‚ð‚Ü‚Æ‚ß‚Ä "Ä—˜—p" ‚É‚Ü‚í‚·
ˆê•”‚Ì—v‘f‚ðŽc‚µ‚Ä‚¨‚«‚½‚¢Ž––³‚¯‚ê‚ÎAdelete a[1][2]; delete a[3][4][5]; ... ‚̂悤‚ÉŽq”z—ñ‚ðŒÂ•Ê‚É
delete‚·‚é•K—v‚Í–³‚¢

‚½‚Æ‚¦‚Ήº‚Ì(2)‚Í‘½ŽŸŒ³”z—ñb‚ª‘½ŽŸŒ³”z—ña‚ÌŽg—pς݃ƒ‚ƒŠ‚ðÄ—˜—p‚·‚é‚Ì‚Å
I—¹ŠÔۂ̃ƒ‚ƒŠŽg—p—Ê‚Í(1)(2)‚Ç‚¿‚ç‚à“¯‚¶‚ɂȂ邪A(2)‚Ì delete a ‚ðÁ‚·‚Æ”{’ö“x‚É‘‚¦‚é
(1) BEGIN{for(i=1; i<=1000000; i++){a[i%10][i]=i}}
(2) BEGIN{for(i=1; i<=1000000; i++){a[i%10][i]=i} delete a; for(i=1; i<=1000000; i++){b[i%10][i]=i}}

ƒƒ‚ƒŠÄ—˜—p‚ÌŽd‘g‚Ý‚ÍThe GAWK Manual‚É‚Í‘‚¢‚Ä‚¢‚È‚¢‚¯‚ÇAharon Robbins‚ª«‚ʼnñ“š‚µ‚Ä‚¢‚é
https://groups.google.com/forum/#!topic/comp.lang.awk/CKwoes0_63U

907 F
‚È‚é‚Ù‚Ç
‚ ‚肪‚Æ‚¤

‚«‚Á‚ÆÄ—˜—p‚³‚ê‚é‚©‚ç
‹C‚É‚¹‚¸•ú’u‚Å‚¢‚¢‚Ì‚©

908 F
>>904 886‚Å‚·B‚ ‚肪‚Æ‚¤‚²‚´‚¢‚Ü‚·B“®“I‚Æ‚Í‚±‚ñ‚ÈŠ´‚¶‚Å‚µ‚傤‚©H
ˆê“xì‚Á‚ÄA휂·‚é‚Æ‚¢‚¤•Ï‚ÈŽd—l‚Å‚·‚ªB
BEGIN {
a[1] = "foo";
a[2][1] = "bar";
a[2][2] = "baz";
a[3] = "qux";
a[4][1][1] = "quux";
a[4][2] = "corge";

for (i = 1; i < 5; i++) {
meta_ar_init(b, i);
clone(b[i], a);
}
}
function meta_ar_init(ar, init_num) {
ar[init_num][1] = "";
delete ar[init_num][1];
}
function clone(lhs, rhs, i) {
for (i in rhs) {
if (isarray(rhs[i])) {
lhs[i][1] = "";
delete lhs[i][1];
clone(lhs[i], rhs[i]);
} else
lhs[i] = rhs[i];
}
}

909 F
‚æ‚­•ª‚©‚ç‚ñ‚ª
—Ⴆ‚΂»‚ê‚Å>>904‚Ì“ü—ÍÃÞ°À‚È‚ñ‚©‚ð“Ç‚Ýž‚ß‚½‚è‚·‚é‚Ì‚©

>>905‚Ìswitch‚¾‚ÆŽ–‘O‚ɉ½ŽŸŒ³‚©‚í‚©‚Á‚Ä‚È‚¢‚Æ“Ç‚Ýž‚ß‚È‚¢

‰½ŽŸŒ³‚É‚È‚é‚©•s–¾‚È“ü—ÍÃÞ°À‚Ìê‡
‚Ç‚¤‚â‚ê‚Ίi”[‚Å‚«‚é‚©‚æ‚­‚í‚©‚ç‚ñ‚ñ‚©‚Á‚½

910 F
>>908‚Ìuˆê“xì‚Á‚ÄA휂·‚év‚Æ‚¢‚¤‚Ì‚Í
https://www.gnu.org/software/gawk/manual/gawk.html#Arrays-of-Arrays
‚±‚±‚̈ê”Ô‰º‚Ìsplit‚ªƒGƒ‰[“f‚­—á‚̉ñ”ðô‚ÅA”z—ñ‚Ì—v‘f‚ðʼn‚©‚ç”z—ñˆµ‚¢‚·‚邱‚Æ‚Í‚Å‚«‚È‚¢‚©‚ç
—\‚ߎŸŠK‘w‚Ƀ_ƒ~[—v‘f‚ð‚Ԃ牺‚°‚Ä‚¨‚«A–{–½‚ðŠi”[‚µI‚¦‚½‚çƒ_ƒ~[‚ÍÁ‚·‚Á‚ĈӖ¡‚©‚È

Ž©•ª‚Å‘‚¢‚½‚炱‚ñ‚È‚ñ‚È‚Á‚½‚¯‚ÇA‚¢‚¿‚¨‚¤‰½ŽŸŒ³‚Å‚àŠi”[‚Å‚«‚»‚¤
https://ideone.com/83ykKF#stdin

911 F
‚·‚²‚¢‚¯‚Ç”z—ñ‚Ì’l‚ª‘‚¢‚Ä‚È‚¢‚Ì‚Å
BEGIN {
array_entry(a, "1-2-3", 48)
array_entry(a, "1-2-4-6", 667)
array_entry(a, "3-1", 0)
array_entry(a, "4", 6)
array_entry(a, "5-1-2-3-4-5", -128)
process_array(a, "a", "do_print", 0)
}

function array_entry(a, val, ele       , step, b, n) {
n = split(val, b, /-/)
if (n == 1) { a[val + 0] = ele; return }
if (step == n - 2) { a[b[step + 1]][b[n]] = ele; return }
a[b[step + 1]]["dummy"];
if (step + 1 < n) {
array_entry(a[b[step + 1]], val, ele, step + 1)
delete a[b[step + 1]]["dummy"]
}
}‚‚­

912 F
function do_print(name, element) {
printf("%s = %s\n", name, element);
}
function process_array(arr, name, process, do_arrays,   i, new_name) {
for (i in arr) {
new_name = (name "[" i "]");
if (isarray(arr[i])) {
if (do_arrays)
@process(new_name, arr[i]);
process_array(arr[i], new_name, process, do_arrays);
} else
@process(new_name, arr[i]);
}
}
‚±‚ê‚Å‚¢‚¯‚»‚¤H

913 F
‚¿‚á‚ñ‚Æ‘‚¢‚Ä‚Ý‚Ü‚µ‚½B
https://ideone.com/rdeTvE

914 F
2019”N‚àawk‚Ì‚¨¢˜b‚É‚È‚è‚Ü‚·

915 F
‚·‚°[

916 F
‚Ç‚È‚½‚©‹³‚¦‚Ä‚­‚¾‚³‚¢
Windows10-32bit,MinGW(msys–³‚µ),gawk4.2.1 for win32 bin/src(ezwinports),
Shift_JIS‚̊‹«‚Å builtin.c ‚ð‘‚«Š·‚¦‚ărƒ‹ƒh‚µ‚Ü‚µ‚½B
‘‚«Š·‚¦‚½“à—e‚Íprintf/sprintf‚̃}ƒ‹ƒ`ƒoƒCƒg•¶Žš—ñ®Œ`ŠÖ˜A‚Å‚·B
ƒrƒ‹ƒhŒãAŠú‘Ò’Ê‚è‚É“®‚«‚Ü‚·‚ªAŽÀsƒtƒ@ƒCƒ‹ƒTƒCƒY‚ª4.8MB‚à‚ ‚è‚Ü‚·B
ã‹L‚̃\[ƒXƒfƒBƒŒƒNƒgƒŠ‚Åcmd‚ð‹N“®‚µ‚Ä
mingw32-make mingw32
‚ƃ^ƒCƒv‚µ‚Ü‚µ‚½B
o—ˆã‚ª‚Á‚½ gawk.exe ‚̃tƒ@ƒCƒ‹ƒTƒCƒY‚ͳí‚È‚Ì‚Å‚µ‚傤‚©H
‚Ü‚½Aã‹LŠÂ‹«‚Å‚Í‚Å‚«‚Ü‚¹‚ñ‚ª configure ‚Í•K—v‚Å‚·‚©?
‚æ‚낵‚­‚¨Šè‚¢‚¢‚½‚µ‚Ü‚·B

917 F
60‚­‚ç‚¢‚Ì‹³Žö‚ª40”N‚­‚ç‚¢‘O‚ÉAWK‚ŃAƒZƒ“ƒuƒ‰ì‚Á‚½‚Æ‚©Œ¾‚Á‚Ä‚½‚ñ‚¾‚¯‚Ç
“–Žž‚ÉŠù‚É‚ ‚Á‚½‚Æ‚¢‚¤‚±‚Æ‚Æ“–Žž‚©‚笋K–͂ȃRƒ“ƒpƒCƒ‰‚È‚çì‚ê‚é‚­‚ç‚¢‚«”\‚¾‚Á‚½‚±‚Æ‚É‹Á‚¢‚½

918 F
ƒAƒZƒ“ƒuƒ‰‚ðƒRƒ“ƒpƒCƒ‰‚Ƃ͌Ă΂Ȃ¢‚ª

919 F
aho

920 F
asortAasorti‚ª‚æ‚­‚í‚©‚ç‚È‚©‚Á‚½‚Ì‚ÅŽŽ‚µ‚½Œ‹‰Ê
# a
a[5] ="a5"
a[1] ="a1"
a[3] ="a8"
# asort(a,as)
as[1] ="a1"
as[2] ="a5"
as[3] ="a8"
# asorti(a,asi)
asi[1]=1
asi[2]=3
asi[3]=5

‚È‚ñ‚¾‚»‚¤‚¢‚¤‚±‚Æ‚¾‚Á‚½‚Ì‚©‚Æ‚í‚©‚Á‚½

921 F
>>917
Žv‚킸 "assembler by awk" ‚ŃOƒO‚Á‚Ä The Amazing Awk Assembler by Henry Spencer ‚ð
ƒ_ƒEƒ“ƒ[ƒh‚µ‚¿‚á‚Á‚½‚¶‚á‚È‚¢‚©B

922 F
awk‚Ńtƒ@ƒCƒ‹‚ª‚ ‚é‚©‚Ç‚¤‚©‚Ì”»•Ê‚ÍA‚ǂ̂悤‚É‚µ‚½‚ç‚æ‚¢‚Ì‚Å‚µ‚傤‚©H

‹ï‘Ì“I‚É‚ÍBEGIN‚Ì’†‚Å

getline a < "/dev/stdin";
fn = a".txt"

‚Æ”CˆÓ‚̃tƒ@ƒCƒ‹–¼‚ðì‚Á‚½ŒãA‚»‚̃tƒ@ƒCƒ‹‚ª‚ ‚é‚©‚Ç‚¤‚©‚ðŠm”F‚µ‚½‚¢‚ñ‚Å‚·B

‚à‚µƒtƒ@ƒCƒ‹‚ª‚·‚Å‚É‚ ‚Á‚½‚爗‚ÍI—¹A–³‚¯‚ê‚ΈȌã‚̈—‚ð‚»‚Ìƒtƒ@ƒCƒ‹‚ɃŠƒ_ƒCƒŒƒNƒg‚·‚éA‚Æ‚¢‚¤Š´‚¶‚Å‚·B

923 F
if(getline<fn!=-1)exit
‚Æ‚©H

924 F
>>923
‚Å‚«‚Ü‚µ‚½I‚ ‚肪‚Æ‚¤‚²‚´‚¢‚Ü‚·II

925 F
“š‚¦‚ªo‚È‚¢‚È‚ñ‚ÅH

#!/usr/bin/awk -f

BEGIN{
print game(10, 24);
}


function game(coin,depth, i,j){
if(memo[coin,depth]){
return memo[coin,depth];
}
if(coin == 0){
return 0;
}
if(depth == 0){
return 1;
}
win = game(coin + 1, depth - 1);
lose = game(coin - 1, depth - 1);
memo[coin,depth] = win + lose;
}

926 F
ÅŒã‚Ì memo[coin,depth] = win + lose ‚Í‚»‚Ì‚Ü‚ÜŠÖ”‚Ì–ß‚è’l‚Æ‚µ‚Ä
return ‚µ‚È‚¯‚ê‚΂Ȃç‚È‚¢‚ªA‚»‚ê‚ð–Y‚ê‚Ä‚¢‚éB

‚³‚ç‚ÉA³‚µ‚¢“š‚¦‚ª•Ô‚ç‚È‚¢Œ´ˆö‚ª 2 “_B
ŠÖ”’è‹`‚̈ø”–¼ŠÔˆá‚¢: i,j ¨ win,loseB
if(depth == 0) ‚Æ if(coin == 0) ‚Ì”»’è‚ðs‚¤‡˜‚ª‹tB

927 F
>>926
‚ ‚肪‚Æ‚¤‚²‚´‚¢‚Ü‚·B
‚»‚Á‚©Breturn‚ª‚¢‚é‚ñ‚Å‚·‚ËB
perl‚¾‚ÆÅŒã‚ÍreturnÈ—ª‰Â”\‚¾‚¯‚Çawk‚ÍÈ—ª•s‰Â‚Ý‚½‚¢B
‚ ‚ÆAˆø”–¼‚àŠÔˆá‚Á‚Ä‚¢‚Ü‚µ‚½B
³‚µ‚¢“š‚¦o‚Ü‚µ‚½I

928 F
‚»‚ê‚®‚ç‚¢‚̈—‚ÍARuby ‚Åì‚êI

929 F
ƒI[ƒN‰p—Y•¨Œê@`œu“x—ñ“``
https://ncode.syosetu.com/n8418ff/1/ 👀
Rock54: Caution(BBR-MD5:0be20a4887bc3d3353f527d3636c44e3)


930 F
>>928
awk‚Ì•û‚ª‚¢‚¢‚Æ‚«‚à‚ ‚é

install‚µ‚È‚­‚Ä‚¢‚¢
ƒ^ƒXƒNƒ}ƒl[ƒWƒƒ‚Å‚Ý‚Ä‚¢‚é‚Æruby‚æ‚胃‚ƒŠ‚ðH‚í‚È‚¢Žž‚à‚ ‚é
—Z’Ê‚Ì—˜‚­”z—ñ‚ª’´•Ö—˜

’ÊMAHashAsort‚È‚ÇŽg‚¢‚Ü‚­‚鎞‚Íruby‚Ì‚Ù‚¤‚ª‚¢‚¢‚¯‚Ç

931 F
‚¢‚âAPerl‚¾B

——R
‰´‚ªŠµ‚ê‚Ä‚é‚©‚çB

932 F
Perl‚Í‚Ü‚ŸŠµ‚êˆÈŠO‚ÉŽg‚¤ˆÓ–¡‚Í‚ ‚܂茩o‚¹‚È‚¢B

933 F
˜R‚ê‚ÍAWindows 10EWSLEUbuntu 16.04 ‚¾‚¯‚ÇA
sudo apt install ruby ‚¾‚¯‚ÅARuby 2.3 ‚ª“ü‚Á‚½

2.4 ˆÈ~‚ÌV‚µ‚¢‘‚«•û‚³‚¦‚µ‚È‚¯‚ê‚ÎA“®‚­

Perl, Python ‚ÍAʼn‚©‚ç“ü‚Á‚Ä‚¢‚邯‚Ç

934 F
>>933
R

935 F
Perl”]‚¾‚Ædie‚È‚Ç‚ÆŒ¾‚¢‚½‚ª‚é‚ñ‚©‚ËB

936 F
Perl dieD‚«

937 F
‚—

938 F
GNU AWK 5.0‚ªƒŠƒŠ[ƒXB8”N‚Ô‚è‚̃ƒWƒƒ[ƒo[ƒWƒ‡ƒ“ƒAƒbƒvB³‹K•\Œ»ƒ‰ƒCƒuƒ‰ƒŠ‚ª
GLIBC‚©‚çGNULIB‚ÖˆÚsA–¼‘O‹óŠÔ‚ªŽÀ‘•@2019”N4ŒŽ17“ú
https://www.publickey1.jp/blog/19/gnu_awk_508glibcgnulib.html

Unix‚âLinux‚É‚¨‚¢‚Äsed‚âgrep‚È‚Ç‚Æ•À‚ñ‚Å‚æ‚­’m‚ç‚ê‚Ä‚¢‚éƒc[ƒ‹‚Ì1‚‚ªawkiƒI[ƒNj
‚Å‚·B‚±‚Ìawk‚ÌGNUƒvƒƒWƒFƒNƒg‚É‚æ‚éŽÀ‘•‚ÌÅV”ÅuGNU AWK 5.0vigawk 5.0j‚Ì
ƒŠƒŠ[ƒX‚ª”­•\‚³‚ê‚Ü‚µ‚½B

2011”N‚ɃŠƒŠ[ƒX‚³‚ꂽGNU AWK 4.0‚©‚ç8”N‚Ô‚èA’¼‘O‚̃o[ƒWƒ‡ƒ“‚Å‚Æ‚µ‚Ä2017”N10ŒŽ‚É
ƒŠƒŠ[ƒX‚³‚ꂽ4.2.0‚©‚ç‚Í–ñ1”N”¼‚Ô‚è‚Æ‚È‚è‚Ü‚·B

AWK‚Í‚¢‚í‚ä‚éƒXƒNƒŠƒvƒeƒBƒ“ƒOŒ¾Œê‚̈êŽíB•Ï”‚âŠÖ”A§Œä•¶‚È‚ÇŠî–{“I‚È\•¶‚ð”õ‚¦A
ƒeƒLƒXƒgƒtƒ@ƒCƒ‹‚ðŒø—¦“I‚Ɉ—‚Å‚«‚é‚Ì‚ª“Á’¥‚Å‚·B

GNU AWK 5.0‚ÌV‹@”\‚Æ‚µ‚Ä‚ÍAprintf‚Ì%a‚¨‚æ‚Ñ%A‚Ì‘Ž®‚ªPOSIX•W€‚É€‹’‚µ‚½‚±‚ÆA
³‹K•\Œ»‚̃‹[ƒ`ƒ“‚ªA’·”N‚ɂ킽‚Á‚ăƒ“ƒeƒiƒ“ƒX‚³‚ê‚Ä‚«‚½GLIBC‚©‚çGNULIB‚É
’u‚«Š·‚í‚Á‚½‚±‚Æ‚È‚ÇB

‚Ü‚½AŽ¯•ÊŽq‚É”ñ‰pŒê•¶Žš‚ðŽg‚¤‚½‚߂̃hƒLƒ…ƒƒ“ƒg‰»‚³‚ê‚Ä‚¢‚È‚©‚Á‚½ƒIƒvƒVƒ‡ƒ“‚È‚Ç‚Í
휂³‚êAƒ\[ƒXƒR[ƒh‚ÍC99ŠÂ‹«‚ª‘z’肳‚ê‚é‚悤‚É‚È‚Á‚Ä‚¢‚Ü‚·B

‚»‚µ‚ÄV‚½‚É–¼‘O‹óŠÔ‚ªŽÀ‘•‚³‚ê‚Ä‚¢‚Ü‚·iÚׂ̓}ƒjƒ…ƒAƒ‹‚ðŽQÆ‚Æ‚Ì‚±‚ÆjB

939 F
sed‚Æawk‚ÅŠÈ’P‚É‚Å‚«‚邱‚Æ‚ð
‘¼‚Ì•û–@‚Å‚â‚Á‚Ä‚éƒAƒz‚ðŒ©‚é‚Æ—D‰zŠ´‚ÉZ‚ê‚é‚æ‚È

940 F
5.0.0‚¶‚á‚È‚­‚Ä4.3.0‚Å‚¢‚¢‚¶‚á‚ñ‚Á‚ÄXV“à—e‚¾‚ÈEEE

941 F
¡Žž‚Á‚Û‚­’èŠú“I‚ɃƒWƒƒ[ƒo[ƒWƒ‡ƒ“ƒAƒbƒv‚µ‚Ä‚¢‚­ìíH
‚»‚ë‚»‚ëAWKCARDˆóü‚µ‚Ă݂悤‚©‚Èc

942 F
>>939
ŠÈ’P‚È•ÏŠ·‚È‚Ì‚ÉWindows‚Æ‚©‚Å‚¢‚«‚È‚èExcel‚Å‚â‚낤‚Æ‚µ‚¿‚Ⴄl‚ðŒ©‚é‚Æ‚»‚±‚Ü‚Å‚¹‚ñ‚Å‚à—Ç‚¢‚¶‚á‚È‚¢‚©‚Æ‚ÍŽv‚Á‚Ä‚µ‚Ü‚¤‚ÈB
‚Ü‚ “ú Windows‚ÅŽ––±ˆ—“I‚ÈŽ–‚µ‚Ä‚¢‚él‚©‚ç‚·‚ê‚΂»‚êˆÈãÅ—Ç‚Å•ª‚©‚è‚â‚·‚¢ŠÂ‹«‚Í‚È‚¢‚ñ‚¾‚낤‚¯‚Ç‚ÈB
‚È‚ñ‚Å‚à‚©‚ñ‚Å‚à‚»‚ê‚Å‚â‚낤‚Æ‚µ‚Ä—]Œv‚É•ª‚©‚è‚Â炭•¡ŽG‚É‚È‚Á‚Ä‚¤‚Ü‚­s‚©‚¸‚Ƀnƒ}‚Á‚Ä‚¢‚é‚Ì‚ðŒ©‚é‚ƈ£‚ê‚ÉŠ´‚¶‚éB

943 F
‚±‚¤‚¢‚¤‹L–@‚ª‚Å‚«‚邱‚Æ‚ð’m‚炸A‹C‚­‚Ì‚É””N‚©‚©‚Á‚½
³‹K•\Œ»”äŠr‚Ìif‚Å•Ï”‚ðŽg‚¦‚éAgsub‚È‚Ç‚Å•Ï”‚ðŽg‚¦‚é

‚”‚˜‚”h‚‚‚‚‚‚‚ƒ‚„‚…‚†‚‡‚P‚Q‚R‚Sh
‚˜hOh ‚“‚•‚‚‚“‚”‚’o‚OC‚PC‚Pp h{h
‚‰‚† o‚”‚˜‚” ` ‚˜p‚‚’‚‰‚Ž‚” h‚‚‹h

‚™‚“‚•‚‚‚“‚”‚’o‚OC‚PC‚Pp
‚š‚“‚•‚‚‚“‚”‚’o‚OC‚QC‚Pp
‚‡‚“‚•‚‚o‚™C‚šC‚Op

(”¼Šp‚¾‚Æ‘‚«ž‚݃Gƒ‰[‚É‚È‚é‚Ì‚Å‘SŠp‚É•ÏŠ·)

944 F
>>943
‚ ‚ê•ÏŠ·‚¨‚©‚µ‚¢
op ¨ ()

945 F
‚Ó‚Ó‚Ó’m‚Á‚Ä‚½B

946 F
The AWK Programming Language (‚Ì–M–ó–{) ‚©‚ç“ü‚Á‚½‚Ì‚Å’m‚Á‚Ä‚Í‚¢‚邯‚ÇA
ƒGƒXƒP[ƒv•¶Žš‚ðl—¶‚µ‚ăR[ƒh‚ð‘‚­‚Ì‚ª–Ê“|‚È‚Ì‚Å‹É—Í”ð‚¯‚Ä‚é‚ÈB
•¶Žš—ñ‚ª³‹K•\Œ»‚ÖuŒ^•ÏŠ·v‚³‚ê‚é‚Æ‚«‚ÌU•‘‚¢‚ɂ‚¢‚ÄA–{‚ɂ͈ꉞ‘‚¢‚Ä‚ ‚éB

947 F
user's guide `Regular Expressions

EUsing Dynamic Regexps
Œ‹\‘O‚©‚ç‚ ‚éB
“à•”“I‚É‚Í•¶Žš—ñ’蔂ð³‹K•\Œ»‚Æ‚µ‚ÄŽg‚¤‚½‚ß‚É
2‰ñ–ڂ̃XƒLƒƒƒ“‚ª•K—v‚炵‚¢B

948 F
‚Ç‚¤‚¹”p‚ê‚邺B‚±‚ÌŒ¾Œê‚Í‚æB‚ ‚΂æ

949 F
AWK / GAWK‚É‚Ä
UTF-8‚Ì•¶Žš—ñ•\Ž¦’·‚³‚Á‚ÄA‚Ç‚¤‚â‚Á‚Ä‹‚ß‚é‚Ì‚Å‚·‚©H
‚½‚Æ‚¦‚ÎA@str="abcde‚ ‚¢‚¤‚¦‚¨"
”¼Šp‚ð 1 ‚Æ‚·‚é‚Æ str ‚Ì•\Ž¦’·‚³‚Í 15

‚Ü‚½AƒLƒƒƒ‰ƒNƒ^”‚Æ•\Ž¦’·‚³‚ð1‚ƒXƒNƒŠƒvƒg‚Å
•¹—p‚µ‚½‚¢‚Æ‚«‚Í‚Ç‚¤‚·‚ê‚΂悢‚Ì‚Å‚µ‚傤‚©H

•ª‚©‚é•ûA‹³‚¦‚Ä‚­‚¾‚³‚¢B‚æ‚낵‚­‚¨Šè‚¢‚¢‚½‚µ‚Ü‚·B

950 F
Ž„‚Í‚±‚¤‚µ‚Ä‚Ü‚·B
http://mfi.sub.jp/_html_awk/gawk_blength.html

951 F
>>950
‚ ‚肪‚Æ‚²‚´‚¢‚Ü‚·B
•‚©‚è‚Ü‚·B

952 F
‚²‚ß‚ñ‚±‚Á‚¿‚Ì•û‚ª—Ç‚©‚Á‚½B
UTF-8‚È‚Ì‚ÅŽg‚¢•û‚͈Ⴄ‚¯‚Ç
ASCII/128ŒÂ‚Æ”¼ŠpƒJƒi/63ŒÂˆÈŠO‚ÍA’·‚³2‚ÅŒvŽZ‚·‚é‚Ì‚Å
•\Ž¦’·‚³‚¾‚ÆŽv‚Á‚Ä‚­‚¾‚³‚¢B

https://ideone.com/97R395

953 F
–Y‚ê‚Ä‚Ü‚µ‚½B
ideone‚Ìstdin •¶Žš‰»‚¯‚µ‚Ä‚é‚킯‚¶‚á‚È‚¢‚©‚çB
ƒ‰ƒ“ƒ_ƒ€‚É•¶Žš‘Å‚¿o‚µ‚Ă邾‚¯‚Å‚·B

954 F
‚±‚¿‚ç‚à‚Ç‚¤‚¼
bsubstr(string, start, length)
Žw’èˆÊ’u(•\Ž¦’·‚³’PˆÊ)‚©‚çŽw’è•\Ž¦’·‚³‚Ì•¶Žš—ñ‚ðØ‚èo‚·ŠÖ”
•¶Žš‰»‚¯‚·‚é‰ÓŠ‚̓Xƒy[ƒX[“U
Shift_JIS‚Å‚àUTF-8‚Å‚à‰Â

https://ideone.com/3295sA

955 F
‚æ‚낵‚¯‚ê‚΂±‚¿‚ç‚à‚Ç‚¤‚¼B
sformat(fw, prec, string)
sprintf("%*.*s", fw, prec, string)‚Ì‘Ö‚í‚è‚É
‚³‚Á‚«ì‚Á‚½‚©‚çƒoƒO‚ª‚ ‚é‚©‚à‚µ‚ê‚Ü‚¹‚ñB

https://ideone.com/TN7Ka4

956 F
–°‚¢A‹A‚Á‚Ä‚«‚ÄŒ©’¼‚µ‚½‚çƒ_ƒƒ_ƒ‚Å‚µ‚½B
sformat()‰ü—Ç‚µ‚Ü‚µ‚½B
Œ©‚Ä‚­‚ê‚Ä‚é‚©‚È

https://ideone.com/VvxBzq

957 F
bsubstr()‚àŒ©’¼‚µ‚½B
‚â‚Á‚Ï‚èƒ_ƒƒ_ƒ‚¾‚Á‚½B

https://ideone.com/7vqqVO

958 F
yoŽ‘z¼–{‘ì˜N lH’m”\¼‹\y’ˆÓz
https://rio2016.2ch.sc/test/read.cgi/rikei/1560859403/

959 F
AWK‚ª‹‘å‚ȃeƒLƒXƒgƒtƒ@ƒCƒ‹‚ðˆ—‚Å‚«‚È‚¢‚Ý‚½‚¢‚Șb‚ð’m‚Á‚Ä‚é•û‚¢‚炵‚á‚¢‚Ü‚·‚©B
‘å‘Ì1.4GiB‚­‚ç‚¢‚̃tƒ@ƒCƒ‹‚ðAWK‚Å•ÒW‚µ‚悤‚Æ‚·‚é‚Æuƒtƒ@ƒCƒ‹‚Ì‹ó‚«‚ª‚È‚¢v‚Ý‚½‚¢‚ȃGƒ‰[‚ªo‚é‚Ì‚ÅB

960 F
UNIX‚Æ‚¢‚¤‚©‚Ü‚Æ‚à‚ÈPIPEŽÀ‘•‚³‚ê‚Ä‚éOS‚È‚ç‚»‚ñ‚È‚±‚Æ‚Í‚È‚¢‚ª
WINDOWS‚Æ‚©‚¢‚¤ƒAƒz‚ÈOS‚¾‚Æo‚邾‚낤‚Ë

961 F
uƒtƒ@ƒCƒ‹‚Ì‹ó‚«‚ª‚È‚¢v‚Á‚Ä‚¢‚¤ƒƒbƒZ[ƒW‚Í "No space left on device" ‚ÌŽ–H

962 F
>>960
ƒRƒ}ƒ“ƒhƒ‰ƒCƒ“‚ŃŠƒ_ƒCƒŒƒNƒgŽg‚Á‚Ä‚ê‚΂»‚¤‚©‚à’m‚ê‚ñ‚ª
ƒXƒNƒŠƒvƒg“à‚Åo—Íæ‚ðŽw’肵‚Ä‚½‚ç‚í‚©‚ç‚ñ‚¼[

963 F
>>960
‚È‚é‚Ù‚ÇB

964 F
>>959
‰üsƒR[ƒh‚̈Ⴂ‚É‚æ‚è‘S‘Ì‚ª’·‚¢ˆês‚Æ”FŽ¯‚³‚ê‚Ä‚µ‚Ü‚¢EEE‚È‚ñ‚ÄŽ–‚Í‚È‚¢‚©H

‚ A‚Å‚àAƒtƒ@ƒCƒ‹‚Ì‹ó‚«‚ª‚È‚¢‚Á‚Ä‚Ì‚Ío—Íæ‚Ì‹ó‚«—e—Ê‚ª‘«‚è‚È‚¢‚Á‚Ä‚±‚Æ‚©‚ÈH

965 F
>>961
‚»‚¤‚Å‚·B
‚Å‚àƒtƒ@ƒCƒ‹ƒVƒXƒeƒ€‚Æ‚µ‚Ä‚Í‘S‚­—]—T‚ª‚ ‚éó‘Ô‚È‚ñ‚Å‚·B

966 F
‚È‚ñ‚¾‚낤‚ËBì‹Æ—pƒtƒ@ƒCƒ‹‚ªì‚ç‚ê‚éƒp[ƒeƒBƒVƒ‡ƒ“‚Ì‹ó‚«‚ª‘«‚è‚È‚¢‚Æ‚©‚©‚ÈH

967 F
64bit”Å‚©32bit”Å‚©‚ňá‚í‚È‚¢‚©
1.4GB‚Í“ü—Í‚Åo—Í‚à“¯‚¶‚È‚Ì‚©‚Í‚é‚©‚ɬ‚³‚¢‚Ì‚©
o—Í‚ª‘¬‚·‚¬‚邱‚Æ‚Í‚È‚¢‚Ì‚©A‚ä‚Á‚­‚èo—Í‚·‚é‚悤‚É‚µ‚½‚ç‚Ç‚¤‚©

968 F
>>966
‚·‚¢‚Ü‚¹‚ñB‚±‚ꂪŒ´ˆö‚Å‚µ‚½B
AWK‚Í‘S‚­ˆ«‚­‚ ‚è‚Ü‚¹‚ñ‚Å‚µ‚½B‚²–À˜f&&ƒXƒŒ‰˜‚µA‘å•ÏŽ¸—炵‚Ü‚µ‚½ccB

969 F
Ruby ‚Å‚àAFile.read ‚È‚çAƒtƒ@ƒCƒ‹‚Ì“à—e‚ðAƒƒ‚ƒŠ“à‚É‚·‚ׂēǂݞ‚ñ‚Å‚µ‚Ü‚¤‚©‚çA
500MB ˆÈã‚È‚çA“Ç‚Ýž‚ß‚¸‚ɃGƒ‰[‚ɂȂ邾‚낤

File.foreach ‚È‚çAƒƒ‚ƒŠ“à‚ÉA1s‚¸‚“ǂݞ‚ñ‚Å‚ÍŽÌ‚Ä‚é‚©‚çA‘å‚«‚¢ƒtƒ@ƒCƒ‹‚Å‚à‘åä•v

‚Ü‚ ARubyVM ‹N“®Žž‚ÉA‚»‚̃AƒvƒŠ‚ªŽg‚¤ƒƒ‚ƒŠ‚̃TƒCƒY‚ðAŽw’è‚Å‚«‚é‚ÆŽv‚¤‚¯‚ÇB
JavaVM ‚É‚ÍA‚»‚¤‚¢‚¤ƒIƒvƒVƒ‡ƒ“‚ª‚ ‚é

970 F
awk‚Å date‚ðŽg‚Á‚½‚Ì‚Å‚·‚ªA•b”‚ªXV‚³‚ꂸ”Y‚ñ‚Å‚Ü‚·BŽd—l‚Æ‚©‚»‚¤‚¢‚¤î•ñ‚²‘¶’m‚Ì‚©‚½‹³‚¦‚Ä
’¸‚¯‚È‚¢‚Å‚µ‚傤‚©
¡ ƒR[ƒh
BEGIN {
for( intCounter = 0; intCounter < 3; intCounter++ )
{
"date +\"%Y/%m/%d %I:%M:%S\" " | getline datTmp
print "Start:" datTmp
system("sleep 2")
}
}
END {
for( intCounter = 0; intCounter < 3; intCounter++ )
{
"date +%I:%M:%S" | getline datTmp1
print "End:" datTmp1
system("sleep 2")
}
}
¡ Œ‹‰Ê
Start:2019/07/02 09:18:36
Start:2019/07/02 09:18:36
Start:2019/07/02 09:18:36
End:09:18:42
End:09:18:42
End:09:18:42
¡ ‹^–â
Start, End ‹¤‚Éʼn‚Ì 1 ‰ñ–Ú‚Ì‚Ý•b”‚ªŽæ‚ê‚Ä‚¢‚é‚悤‚ÅA2‰ñ–Ú‚©‚ç‚Í2•bŒã‚Ì‚Í‚¸‚È‚Ì‚ÉA•b”‚ª•Ï‚í‚Á‚Ä‚¢‚È‚¢ orz..

971 F
‚¨‘›‚ª‚¹‚µ‚Ü‚µ‚½BŽ©ŒÈ‰ðŒˆ‚µ‚Ü‚µ‚½B
https://stackoverflow.com/questions/2391272/gawk-awk-piping-date-to-getline-sometimes-wont-work
close‚ðŽg‚¤•K—v‚ª—L‚Á‚½‚悤‚Å‚·B
¡ ƒR[ƒh
BEGIN {
for( intCounter = 0; intCounter < 3; intCounter++ )
{
"date +\"%Y/%m/%d %I:%M:%S\" " | getline datTmp
print "Start:" datTmp
system("sleep 2")
close("date +\"%Y/%m/%d %I:%M:%S\" ")
}
}
END {
for( intCounter = 0; intCounter < 3; intCounter++ )
{
"date +%I:%M:%S" | getline datTmp2
print "End:" datTmp2
system("sleep 2")
close("date +%I:%M:%S")
}
}
¡ Œ‹‰Ê
Start:2019/07/02 09:44:49
Start:2019/07/02 09:44:51
Start:2019/07/02 09:44:53
End:09:44:55
End:09:44:57
End:09:44:59

972 F
gawk‚Ȃ玞ŠÔŠÖ”ŒQ‚ ‚é‚ñ‚¶‚áB

973 F
‚±‚±‚¢‚¢‚ËBWebã‚Åawk‚ÌŽÀs‚Æ‚»‚ÌŒ‹‰Ê‚ªŒ©‚ê‚éƒT[ƒrƒXB
https://www.tutorialspoint.com/execute_awk_online.php

974 F
@@@@@@@@@@@fi
@@@@@@@@@@¤J‚Š
@@@@@@@@@@ „J@
@@@@@@@@@^ÜR
@@@@@@@@@lQ 0..0
@@@@@@@@@@}{ lû
@@@@@@@@-=-v=-
@@@@@@@@}{ œcƒ~É{
@@@@@@@@}{@Ӗ@}{
@@@@@@@ –æOTO)–æ
@@@@@@@@@}{@}{
@@@@@@@@@}{@}{
@@@@@@@@ ‹y ‹y

975 F
Windows10 ‚̃Rƒ}ƒ“ƒhƒvƒƒ“ƒvƒg‚Å awk ‚ðŽg‚¢‚½‚¢‚Å‚·B
vector ‚ÅŒŸõ‚·‚é‚Æ‚¢‚ë‚¢‚ë‚Å‚Ä‚­‚é‚Ì‚Å‚·‚ªA
‚±‚ꂪ‚¨Š©‚ß‚Á‚Ä‚¢‚¤‚Ì‚ ‚è‚Ü‚·‚Å‚µ‚傤‚©B
“ú–{Œê‚àˆµ‚¦‚é‚Ì‚ª‚¢‚¢‚Å‚·B
‚æ‚낵‚­‚¨Šè‚¢‚µ‚Ü‚·B

976 F
Windows 10‚È‚çA•W€‹@”\‚ÌWSLi+Ubuntuj‚ðƒCƒ“ƒXƒg[ƒ‹‚·‚é‚Ì‚ªˆê”Ê“I
vector‚Æ‚©‚à‚¤‚ ‚ñ‚È‚Ì‚¢‚ç‚È‚¢

977 F
WSL‚Á‚ÄŽg‚Á‚½‚±‚Æ‚È‚©‚Á‚½‚ñ‚Å‚·‚¯‚ÇA
ƒOƒO‚Á‚Ä‚Ý‚½‚ç‚à‚¤ Win ‚Å Linux ‚ª•W€‚ÅŽg‚¦‚é‚ñ‚Å‚·‚ËB
‚±‚ê‚È‚ç cygwin ‚Æ‚©‚àA‚à‚¤‚¢‚ç‚È‚¢‚Ì‚©‚ÈB
î•ñ‚Ç‚¤‚à‚Å‚·B

978 F
cygwin‚à‚¢‚ç‚È‚¢B’x‚¢‚µŒÝŠ·«’á‚¢‚µ

979 F
WSL ‚Á‚Ä pro ‚¾‚¯H
home ‚¾‚Á‚½‚ç•t‚¢‚Ä‚È‚¢H
msys ‚Æ‚©“ü‚ê‚ê‚Î‰ðŒˆ‚·‚邯‚Ç

980 F
ƒ}ƒCƒNƒƒ\ƒtƒg‚àƒrƒ‹ƒQƒCƒc‚ª‚¢‚È‚­‚È‚Á‚Ä
‘½­‚Í—Ç‚¢Ž–‚à‚·‚é‚悤‚É‚È‚Á‚½‚©‚ÈB

981 F
>>980
‚¢‚âA‚Ü‚¾‘«‚è‚È‚¢B‰½‚Å‚à‚©‚ñ‚Å‚àWindows‚Ìã‚Å“®‚­‚悤‚É‚µ‚Ä‚¢‚邾‚¯‚¾‚µ‚ËB‚·‚é‚Ɖ½‚ð“®‚©‚·‚É‚µ‚Ä‚àWindows‚̃‰ƒCƒZƒ“ƒX—¿‚ªŠ|‚©‚éB
‚Ü‚ Žd•û‚Ì‚È‚¢‚±‚Æ‚Å‚Í‚ ‚邪‚ÈB

982 F
WSL‚Íhome‚Å‚àŽg‚¦‚éBWSL2‚àŽg‚¦‚é‚悤‚É‚·‚é‚Æ”­•\‚ª‚ ‚Á‚½B

983 F
>>981
> ‰½‚Å‚à‚©‚ñ‚Å‚àWindows‚Ìã‚Å“®‚­‚悤‚É‚µ‚Ä‚¢‚邾‚¯‚¾‚µ‚ËB‚·‚é‚Ɖ½‚ð“®‚©‚·‚É‚µ‚Ä‚àWindows‚̃‰ƒCƒZƒ“ƒX—¿‚ªŠ|‚©‚éB

‚»‚ꂪLinux‚Å‚à“®‚­‚悤‚É‚È‚èAWindows‚̃‰ƒCƒZƒ“ƒX—¿‚à‚©‚©‚ç‚È‚­‚È‚Á‚Ä‚«‚Ä‚é‚©‚ç
Å‹ß‚ÌMS‚Ì•]”»‚ª”²ŒQ‚Éオ‚Á‚Ä‚é‚ñ‚¾‚ë

984 F
>>980
windowsˆç‚¿‚Å‚È‚¢unixŒn‚ð’m‚Á‚Ä‚¢‚é¡‚ÌCEO‚É•Ï‚í‚Á‚Ä‚©‚ç•Ï‰»‚µŽn‚ß‚½
ƒ_ƒ‚È‹ŒMS•¶‰»‚©‚çunixŒn‚âandroidŒn‚É“]Š·‚ð‚Í‚©‚Á‚Ä‚¢‚é
ƒ_ƒ‚¾‚Á‚½‚Ì‚Í‘OCEOƒoƒ‹ƒ}[

985 F
‚¢‚Á‚»‚Ì‚±‚Æ UNIX ‚̃J[ƒlƒ‹‚É Windows ‚̃VƒFƒ‹‚ð
”킹‚Ä‚à‚ç‚¢‚½‚¢‚Å‚·‚ËB
Mac ‚Í‚à‚¤‚»‚¤‚È‚Á‚Ă邵B

986 F
‚»‚Ì‚í‚è‚ÉAMac‚Á‚ÄUNIX‚ð‘S‘RŠˆ‚©‚¹‚Ä‚È‚¢‚æ‚ÈH
fork‚Í’x‚¢‚µA‰¼‘zƒ}ƒVƒ“Žg‚Á‚½‚Ù‚¤‚ªMac‚æ‚è‚à‘¬‚¢‚µB

987 F
‚Ü‚ AApple‚ÍUNIX‚ð^Ž—‚邱‚Æ‚µ‚©‚Å‚«‚È‚©‚Á‚½‚킯‚Å
UNIX‚Æ‘oàø‚ð‚È‚·“ÆŽ©OS‚ðì‚èã‚°‚½MS‚Æ“¯‚¶‚±‚Æ‚ð‚µ‚ë‚Æ‚¢‚¤‚Ì‚à“‚È˜b‚¾‚ªA
UNIX/Linux‚ðŽæ‚èž‚Þ‚È‚çAWSL‚Æ“¯‚¶Žd‘g‚Ý‚Å\•ª‚È‹C‚ª‚·‚éB

‚ ‚ÆApple‚ª‰^‚ªˆ«‚©‚Á‚½‚Ì‚ÍALinux‚ª‚±‚±‚Ü‚Å•‹y‚·‚é‚Æ—\‘ª‚Å‚«‚È‚©‚Á‚½‚±‚Æ‚©‚È
BSDŒn‚ðÌ—p‚µ‚¿‚á‚Á‚½‚Ì‚ÅALinux‚ƃRƒ}ƒ“ƒh‘ÌŒn‚ª”÷–­‚É•Ï‚í‚Á‚Ä‚µ‚Ü‚Á‚½B
•W€‚ÅUnixƒRƒ}ƒ“ƒh‚ª“‹Ú‚³‚ê‚Ä‚é‚É‚àŠÖ‚í‚炸AƒT[ƒhƒp[ƒeƒB‚ÌHomebrew‚ðŽg‚Á‚Ä
LinuxŒÝŠ·iGNU”Åj‚̃Rƒ}ƒ“ƒh‚É’u‚«Š·‚¦‚él‚à‘½‚¢‚µB

988 F
> UNIX‚Æ‘oàø‚ð‚È‚·“ÆŽ©OS‚ðì‚èã‚°‚½MS
ƒSƒ~‚ð‚Å‚Á‚¿ã‚°AOS‚Æ‚©‚æ‚­‰ð‚ç‚È‚¢’rÀ‘w‚É”„‚Á‚½‚¾‚¯B

989 F
MS‚ÍOS‚Æ‚¢‚¤‚æ‚è‚ÍUI‚ðì‚Á‚½Š´‚¶‚¾‚ÈB

990 F
>>988
Ž¹“i‚·‚ñ‚È‚æ‚— Ž–ŽÀ‚͎󂯓ü‚ê‚悤‚º‚—

991 F
ƒ}ƒNƒhƒiƒ‹ƒh‚̃nƒ“ƒo[ƒK[•À‚É•‹y‚µ‚½

992 F
macOS‚Ì‘Og‚ÌNEXTSTEP‚Í‹Zp“I‚É‚ÍâŽ^‚³‚ê‚Ä‚½
macOS‚Í’†g‚Ù‚ÚNEXTSTEP‚ÅŒ©‚½–Ú‚ðƒ‚ƒ_ƒ“‚É‚µ‚½‚¾‚¯‚¾

993 F
ƒ}ƒ‹ƒ`ƒ†[ƒU[ƒ}ƒ‹ƒ`ƒXƒŒƒbƒhƒÖƒÖƒÖ

994 F
> macOS‚Ì‘Og‚ÌNEXTSTEP‚Í‹Zp“I‚É‚ÍâŽ^‚³‚ê‚Ä‚½

‚Å‚àUNIX‚ÌŠ„‚Éfork‚ª’x‚¢‚ñ‚¾‚æ‚È
cygwinŽg‚Á‚Ä‚é‚Ì‚©H‚Á‚ÄŽv‚Á‚¿‚Ⴄ‚®‚ç‚¢B

995 F
ƒXƒŒƒbƒh‚à’x‚¢‚ÌH

996 F
>>994
fork‚ª‘¬‚­‚ÄÌŽ^‚³‚ê‚Ä‚½–󂶂á‚È‚¢‚©‚ç‚Èc
‚¿‚È‚Ý‚Éfork‚Ì‘¬“x‚Í¡Žž‚»‚ñ‚È‚Éd—v‚¶‚á‚È‚¢‚¼
‚à‚µ‚»‚ê‚Å¢‚Á‚Ä‚é‚È‚çƒXƒŒƒbƒh‚ðŽg‚¤‚Æ‚©Ž–‘O‚ɃvƒƒZƒX‚ð‹N“®‚µ‚Ä’u‚­‚È‚è‚·‚ê‚΂¢‚¢

997 F
‚Å‚à‚»‚¤‚·‚é‚ÆWSL‚Å\•ª‚¶‚á‚ËH‚Æ‚¢‚¤˜b‚É‚È‚é

998 F
VŽè‚̃XƒŒ–„‚ß—§‚Ä‚©w

999 F
>>987
‚»‚ñ‚È‚±‚Æ‹C‚É‚·‚él‚Á‚Ä‚Ç‚ê‚­‚ç‚¢‹‚é‚ñ‚¾‚낤
CPU‚Å‚·‚ç68APowerPCAx86‚Æ•Ï‚¦‚Ä‚«‚Ä
OS‚Í“ÆŽ©ABSD‚Æ—ˆ‚½‚à‚ñ‚¾
‘½‚­‚Ìl‚Í’†g‚ð‹C‚É‚¹‚¸Žg‚Á‚Ä‚é‚Ì‚É

Ž©•ª‚ÍŒ³ƒ}ƒJ[‚¾‚¯‚Ç¡‚Í1‘ä‚àŽ‚Á‚Ä‚È‚¢
‚Å‚àƒtƒ@ƒbƒVƒ‡ƒ“‚ÅMacBook‚¢‚¢ƒJƒi‚ÆŽv‚¤‚æ
ŽdŽ–‚ÍIT‚̃Gƒ“ƒWƒjƒA‚Ť—pUNIXŽg‚Á‚Ă邯‚Ç
ƒRƒ}ƒ“ƒh‚È‚ñ‚Ä‚Ç‚¤‚Å‚à‚¢‚¢‚í
D‚«‚È‚Æ‚±‚ë‚ɃƒOƒCƒ“‚·‚ê‚ÎŒ¾‚¢‚¾‚¯‚È‚ñ‚¾‚©‚ç

1000 F2019/08/08
| awk -F: '! /BINARY/ {print $1}'\

³‹K•\Œ»–³‚µ‚ÌŠÈŒ‰‚È•”•ª‚Íperl -lane ‚æ‚è’Z‚­‚ÄÅ‚

ƒVƒFƒ‹ƒXƒNƒŠƒvƒg‘‡ ‚»‚Ì30
y.NETzF#‚ɂ‚¢‚ÄŒê‚ê2yOCAMLz
Subversion r15
Win32APIŽ¿–â”  Build125
ƒRƒƒ“ƒgŒ¤‹†‚·‚êB
BASIC‚Ìh‘è‚Í‚¨‘O‚É‚Ü‚©‚¹‚½
‰pŒê‚Ì‹Zp‘“Ç‚ß‚¿‚ႤƒvƒƒOƒ‰ƒ}
lH’m”\‚ðì‚낤ver0.0.7
Borland C++ Compiler ƒI@ƒ@ƒ^
C/C++‚Ìh‘è•Ð•t‚¯‚Ü‚· 170‘ã–Ú
--------------------
Œ‹Šj Part14
ŠëŒ¯’nˆæ‚És‚«‚½‚¯‚ê‚Îs‚¯
yPS3/PS4z‰‰¹ƒ~ƒN -Project DIVA-25yF/X/FTz
]ŒËì‹£’ø‚𓾈ӂƂ·‚é‘IŽè
™gato“®‰æ‚ðŠy‚µ‚ÞƒXƒŒ@58•C–Úš
Ask.jp ƒNƒCƒbƒN•ƒXƒ}[ƒgŒŸõ@Part2
Š–숤ˆß@93‚Ì‚ñ
ykoffeez’†ŠOŽÊ^–ò•i5yϲ±ÙÊÞÑz
¬¬ Liverpool FC ¬ 964 ¬¬
–Ÿ‰æ“™‚Éo‚Ä‚­‚鋼”žEéZéJ‚ðŒê‚낤
¹‰Îƒ‰ƒ“ƒi[”­•\‚³‚ꂽ‚¯‚ÇAÅIƒ‰ƒ“ƒi[‚Í’N‚ª‚¢‚¢H’r]HƒCƒ`ƒ[H‰H¶H
‘å˜a˜HüE–œ—t‚Ü‚Ù‚ë‚Î(÷ˆä)üE˜a‰ÌŽRüE“Þ—Çü116
y3DSz3DS‚±‚̃Q[ƒ€‚Í”ƒ‚Á‚Æ‚¯ 52yƒIƒXƒXƒz
yŽŸ‚Íz„‘fl’nk‘å—\‘zƒy‚Ç‚±‚¾z
ŒK“c‰À—S‚̃NƒYƒGƒsƒ\[ƒh‹³‚¦‚Ä‚­‚¾‚³‚¢
yŽ ‰êz‘’ÃŽs‚Ì‚¿‚á‚ñ‚±“X‚ÅAŽG†‚Ìì‚è•û‚Ɉö‰‚‚¯“XŽå‚ð50`60‰ñ‰£‚é–\s@Ž€–S‚³‚¹‚½’j‚狤–d‚ð”Û”F@‰Œö”»
’c‰ò‚Á‚ĎԂ̉^“]‚ªƒwƒ^ƒNƒ\‚¾‚æ‚Ë
yƒŠƒ“ƒN‚ÍzƒgƒCƒ*ƒCƒ268y‰Ÿ‚µ•t‚¯z
yƒfƒB[ƒ“zDEAN GUITAR Part5yƒMƒ^[z
yn‰åzƒoƒL“¹ R1269y”Š_Œb‰îz
TOP ƒJƒeˆê—— ƒXƒŒˆê—— 100`I‚Ü‚Å 2chŒ³ 휈˗Š