* Frui/(ӂ邢) - find+grept@CR}h

version 1.2

----------------------------------------

ڎ
(TOC)

----------------------------------------

** Frui/⿂Ƃ͉łH

Frui/(ȉFruiƕ\L)́AUNIXR}h"find""grep"gݍ킹悤ȏ܂Bʂu⿂ƂĂvlq炱t܂B
@\́A{findɎ{ɂĂ܂A삪Ił邱ƁA͂ył邱ƂD悵Ă܂B grep@\͖{grepقǋ@\͖Lxł͂܂񂪁Ao͌ʂ͂قړɂȂ悤ɂĂ܂B

find,grepƈقȂ_͈ȉ̒ʂłB
- ftHgł́AJgfBNg[gƂČ
- ftHgł́A_ό(AND)ŒZ]
- Os̕\IvVȂǂ
- ˑ(JNI,JAPIȂ)͎gpĂȂ߁AJavaŎQƂłȂɈˑ鑀͂łȂ

----------------------------------------

** CXg[ɂ

JRE(Javas)1.4ȏオCXg[ĂKv܂Bi1.3ŎǵA[#java1.3:Java1.3Ŏgpꍇ]QƂĂBj

*** UNIXnOS̏ꍇ

A[JCuKȃfBNgɓWJ܂Bł"/opt/frui"Ƃ܂B
GCAXgꍇ́Aȉ̃R}hs܂B
	
alias frui="java -jar /opt/frui/frui.jar"

GCAXgȂꍇ́Aȉ̃XNvgLqt@C"frui"ƂOŃpX̒ʂĂfBNgɕۑAs^ĂB
	
#!/bin/sh
java -jar /opt/frui/frui.jar $*

R}hsĂ݂܂傤B"frui -v"Ńo[W񂪕\ꂽCXg[łB

*** Windows̏ꍇ

A[JCuKȃfBNgɓWJ܂Bł"C:\Program Files\Frui"Ƃ܂B

ɁAȉ̃R}hLqt@C"frui.bat"ƂOŃpX̒ʂĂfBNgɕۑĂBi"% *"XPA2000ANTłgȂ̂ŒӁBj
	
@echo off
java -jar "C:\Program Files\Frui\frui.jar" %*

R}hsĂ݂܂傤B"frui -v"Ńo[W񂪕\ꂽCXg[łB

** ACXg[ɂ

{Iɂ́ACXg[Őݒ肵̂폜΃ACXg[ƂȂ܂B
IvVɂāiɈړj́AfBNgꎞt@C쐬܂̂ŁAsvȏꍇ͍폜ĂB

----------------------------------------

** g @howtouse@

ۂɌĂ݂܂傤BłUNIXnOSł̊ȒPȗ܂B܂́A[gƂfBNg"cd"ňړ܂B̃fBNgẑ͎悤ɂȂĂƂ܂傤B
	
Main.java  (350bytes) 
src/A.java (870bytes)
src/A.txt  ( 12bytes)

gqjavaŃTCY500oCgȏ̃t@Cꍇ́Â悤ɂ܂B
	
$ frui --find .java --size +500 --path
./src/A.java
$

"--find""--size"Ȃǂ̓IvVŁAȂǂ̎ws܂BIvV𕡐w肵ꍇ́AANDŕ]܂BL̏ꍇł́A"--size"̕]"src/A.txt"ɑ΂Ă͍s܂B"--path"͏o͌`IvVŁApX\܂B

IvVɂ͒Zk\LAႦ"--find""-f"ƁA"--size""-s"Ǝw肷邱Ƃł܂BOɎsR}h͒Zk\Lɂƈȉ̂悤ɂȂ܂B
	
$ frui .java -s +500 -p

IvV́AŒ1͎w肵Ȃ΂Ȃ܂BiݒBڂ́A[#option:IvV]QƁBjɏw肵Ȃꍇ́A"path"IvVȂǂ̏o͌`w肵ĉB

܂AIvVɂ͎̂悤ȓꃋ[܂B
- IvVȗ--findƂ݂Ȃ
- o͌`IvV͍ŌɎw肳ꂽ̂LƂȂiO:OȐꍇj
- ݒIvVw肵ꍇ͍ŌɎw肳ꂽ̂LƂȂiOFfBNg͕wj

t@CƂ́At@CpXƈvs̏܂Ƃ߂ŁAgrepȂǂňvs̏񂪂ꍇgrep̏o͌ʂ̂悤ɂȂ܂B

IvVɂ́A0`2̃p[^w肵܂BIvVɂăp[^͈̐قȂ܂AP̃IvVŃp[^ς邱Ƃ͂܂BႦ΁AcopyIvV̓p[^2܂A
	
$ frui --copy A --find

̂悤Ɏw肷ƁA"--find"̓IvVł͂ȂAcopyIvV̑2p[^Ɖ߂Ă܂܂B

p[^̎ނ̂Aup^[v͋ʂ̎w@܂B
- abc123 Fʏ̕p^[
- /abc123.+/i FK\p^[("/"ň͂񂾏ꍇ)
- .java,jsp,html Fgqp^[(findIvV̂,sIhŎn܂, ̓J}ŋ؂)
- 啶p^[(ڍׂ͉L)

p^[włIvV̒Zk\L"i"tƁAp^[}b`̍ۂɑ啶̋ʂɏ܂B
	
"-fi list"   "-f list" + ignore-case
"-gi /NEW/"  "-g /NEW/i"  "-gi /NEW/i"

----------------------------------------

** IvV @option@

eIvV̏ڍׂłBł͐Ă܂񂪁AIvV܂ɕނƁAAړAo͌`AݒAȂA܂B̓}jAɂ͋LڂĂ܂񂪁A[#option.help:helpIvV]ŏo͂wvɏĂ܂B
sꍇ́AAړAo͌`̂ꂩAŒ1͎w肵Ȃ΂Ȃ܂BɎw肷Ȃꍇ́Ao͌`𖾎IɎw肷Όł܂B
IvV̕ނƂɂ̈قȂ郋[܂B
-F̃IvV̂NOTL
-ړFt@C͏̃t@CpXɏ
-o͌`FI[̏łAŌɎw肳ꂽ̂L (AOR͕w\)
-ݒFw\̃IvVȊÓAŌɎw肳ꂽ̂L
-F\Ă̂܂܏I(̃IvVƂ̑gݍ킹͕s)
-̑:IvVɈˑ

o̎̍sɏĂ̂́A"Zk\LAS\LAp[^"̐łBZk\L͓͂₷AS\L͊o₷AꂼD悵\LɂȂĂ܂B

*** and - AND
 -a --and p[^:Ȃ
̃IvVȍ~̃IvVANDŌ܂BftHgANDȂ̂ŁAORANDɖ߂ƂɎw肵܂B

*** binary - oCit@C
 -B --binary p[^Ȃ
t@CoCit@Cǂ𒲂ׂ܂B̃IvV͏ɎԂ\܂Bڍׂ[#performance:ptH[}Xɂ]QƂĂB

*** copy - t@CRs[
 -c --copy p[^:1.p^[ 2.u (v[#property.modify:modifyvpeB])
pX񂪕p^[ɈvꍇAuŒupX̃pXɃt@CRs[܂BRs[̃fBNg݂Ȃꍇ͍쐬܂BŏIXVRs[܂BŏIXVȊȎ̓Rs[܂BiڍׁFJava1.4ł̓t@C̑͂قƂǑł܂Bj
	
$ frui .txt
./test.txt
./test/a.txt
$ frui -c test text
./text.txt
./text/a.txt
$ frui .txt
./test.txt
./text.txt
./test/a.txt
./text/a.txt
$

*** clear - sNA
 -C --clear p[^:Ȃ
grepnIvV́AʂɍstĎ̃IvVɓn܂A̍sNAꍇɎgp܂B
NOTƕĎgp邱Ƃł܂ApIł͂܂B̃IvVŏ鎞_ōs񂪂̂"^"ƂȂ邽߁Agrepn(s擾錟)ANĎŎgpƕKvȂƂɂȂ܂BORgrepnƔgrepnƑgݍ킹ꍇɂ͈v܂AɂĂgrepn̏ňv͏O邽߁AӖ̂ȂƂȂ܂B

*** directory - JnfBNgw
 -d --directory p[^:1.fBNg
JnfBNgw肵܂BfindR}h̑1p[^Ɏw肷̂ƓłBw肵Ȃꍇ́AJgfBNgƂȂ܂B
w肵ꍇAw肵Ɍs܂BႦ΁AfBNg2w肵ꍇA1Ԗڂ̃fBNǧIA2Ԗڂ̃fBNǧs܂B

̗́A[gfBNgȉ"hosts"܂ރpX܂BiɎԂ܂̂Ŏꍇ͒ӂĂBj
	
$ find / -regex ".*hosts.*"
/etc/hosts
$ frui -d / hosts
/etc/hosts
$

*** depth - ̐[xw
(ZkȂ) --depth p[^:1.[x̎w
fBNg̐[xw肵܂B[x́AJnfBNg1ÃTufBNg2AƂȂ܂B
[x̎ẃA"1..2"(12܂),"1.."(1炷ׂ),"..2"(2܂łׂ),"2"()4ނ܂B
stdinIvVw肵Ăꍇ͖ƂȂ܂B

*** evaluate - Cӂ̃IvV]
 -e --evaluate p[^:
Cӂ̃NXɎw肵܂BȌꍇȂǂɎgp܂Bڂ́A[#howtouseevaluate:evaluate̎g]QƂĂB

*** find - pX @option.find@
 -f --find p[^:1.p^[
pX񂪎w肵p^[ɈvĂ邩ǂ𒲂ׂ܂B[#howtouse:g]ł悤ɁAIvVȗꍇ͂̃IvVƂ݂Ȃ܂B܂ÃIvV̂݁ugqp^[vp\łB

̗́A"2006"fBNgt@CɊ܂މ摜t@C܂B
	
$ find . -iname "*.jpg" -or -iname "*.gif" -or -iname "*.png" -or -iname "*.bmp" | grep 2006
./photo/kyoto.20060403.jpg
./watch2006/a.gif
./watch2006/b.gif
$ frui .jpg,gif,png,bmp 2006
./photo/kyoto.20060403.jpg
./watch2006/a.gif
./watch2006/b.gif
$

*** fullpath - tpXŏo
(ZkȂ) --fullpath p[^:Ȃ
[g̎w肪΃pX΃pXɊւ炸AɃtpXi΃pXjŏo͂܂B

*** grep - t@CsPʌ
 -g --grep p[^:1.p^[
t@C̓ew肵p^[ɈvĂ邩ǂ𒲂ׂ܂B"GREP"łB

̗́ACwb_t@Cstdiowb_includeĂt@CGREP܂B
	
$ frui .h -g "#include" -g stdio
./usr/include/bzlib.h:118:#include <stdio.h>
./usr/include/mntent.h:39:#include <stdio.h>
./usr/include/stdio.h:71:#include <sys/stdio.h>
$ frui .h -g "/#include.+stdio/"
./usr/include/bzlib.h:118:#include <stdio.h>
./usr/include/mntent.h:39:#include <stdio.h>
./usr/include/stdio.h:71:#include <sys/stdio.h>
$

*** help - wv\ @option.help@
 -h --help p[^:Ȃ
ȈՃwvo͂܂B

*** html - HTML`ŏo
(ZkȂ) --html p[^:Ȃ
ʂHTML`ŏo͂܂BHTMLɂ͌ʂւ̃NLq܂B

*** stdin - W͂t@C荞
 -i --stdin p[^:Ȃ
JnfBNg擾At@CW͂荞݂܂BFruił͏łȂAt@Cɏo͂ʂēx肷ꍇɎgp܂BW͂ɂẮAgpVF̎gmĂKv܂B
͂ꂽpX݂ȂꍇÃpX̓XLbv܂B̂ƂAXLbvꂽpX1ȏ㑶݂ꍇ́AverboseIvVw肷΃XLbvʌƋɏo͂܂B

Ⴆ΁AUNIXfind-newerIvVōi荞񂾂ƂFruigꍇ͎̂悤ɂ܂B
	
$ find . -newer timestamp.file | frui -i .java,jsp,html

܂At@C荞ޏꍇ͎̂悤ɂ܂B
	
$ frui -i .java,jsp,html < result.file

*** list - t@C̏ڍׂo
 -l --list p[^:Ȃ
UNIXls(-l)R}hAMS-DOSdirR}ĥ悤ɁAt@C̃TCYXV̈ꗗo͂܂BAVXeɈˑ͏o͂ł܂B

ls -lR}hŕ\ꍇ́Â悤ɂ܂Bi1MBȏ̃A[JCut@CBj
	
$ frui .lzh,zip,z,gz,bzip2 -s +1M | xargs ls -l

*** move - upXŃl[
 -m --move p[^:1.p^[ 2.u (v[#property.modify:modifyvpeB])
pX񂪕p^[ɈvꍇAuŒupX̃pXɃt@Cړ܂Bړ̃fBNg݂Ȃꍇ͍쐬܂
	
$ frui .txt
./test.txt
./test/a.txt
$ frui -m test text
./text.txt
./text/a.txt
$ frui .txt
./test/a.txt
./text/a.txt
$

*** not - ̌𔽓]
 ! --not p[^:Ȃ
Ɏw肵IvV̏𔽓]܂iNOTjB

*** name - t@Cp^[
 -n --name p[^:1.p^[
t@Cw肵p^[ɈvĂ邩ǂ𒲂ׂ܂B
	
$ frui --find aaa
./aaa.txt
./aaa/1.txt
$ frui -n aaa
./aaa.txt
$

*** number - so
 -N --number p[^:Ȃ
t@C̍so͂܂BAAs擾ς݂̏ꍇAvso͂܂B
	
$ frui -n a.txt -N
         5 ./a.txt
$ frui -n a.txt -g te
./a.txt:1:test
./a.txt:2:tear
./a.txt:3:text
./a.txt:4:teach
./a.txt:5:tempo
$ frui -n a.txt -g /te.t/
./a.txt:1:test
./a.txt:3:text
$ frui -n a.txt -g /te.t/ -N
         2 ./a.txt
$

*** or - OR
 -o --or p[^:Ȃ
̃IvVȍ~̃IvVORŌ܂B񍀉Zł͂ȂAANDw肳܂ł̑SẴIvVOR܂BꂽIvV͒Z]܂BORAND͂܂2ȏw肵ꍇAw育ƂɏO[vɂȂ܂B
	
$ frui -o A B -a C -o D E -o F G --verbose
[MODE]   directory=[] verbose=true depthRange=
[PROPS]  
[FILTER] ( Find(A) or Find(B) ) & Find(C) & ( Find(D) or Find(E) ) & ( Find(F) or Find(G) ) & PrintInfo
# (ȉȗ)

OR̓t@CPʂŒZ]s߁Agrepn͍ŏ̏Ɉv_ŕ]IĂ܂Aŏ̏Ɉvsoł܂Bsɑ΂ORKpɂ́AK\ORw肷邩AgrepgIvV`Ȃǂ̑ΉKvƂȂ܂B

*** path - pX̂ݏo
 -p --path p[^:Ȃ
s񂪎擾ς݂̏ꍇłApX݂̂o͂܂B
	
$ frui -n a.txt -g /te.t/
./a.txt:1:test
./a.txt:3:text
$ frui -n a.txt -g /te.t/ -p
./a.txt
$

*** quiet - o͂Ȃ
 -q --quiet p[^:Ȃ
ʂo͂܂BړȂǂ̂ƂŌʂ\ȂꍇȂǂɎgp܂B

*** replace - t@Cu
 -r --replace p[^:1.p^[ 2.u (v[#property.modify:modifyvpeB], [#property.replace:replacevpeB])
!dvȃt@Cj󂵂Ă܂ꂪ܂Bgp̍ۂ́A\ɂӂB
GREPsAvw肵ɒuAt@CeXV܂BzipIvVƓɂ͎wł܂B
u̍ہÃt@C̉sR[hێ悤ɂȂĂ܂B
usꍇAꎞfBNgiڍׁFJavaVXevpeB"java.io.tmpdir"̃pX+"Frui"jɋIɃobNAbv쐬܂B

*** size - t@CTCY
 -s --size p[^:1.t@CTCY
t@C̃TCY𒲂ׂ܂BiڍׁFjava.io.File#length()̒lgp܂Bj
́Ar{TCYlŎw肵܂B
rẃA3̋L̂ꂩ1wł܂Bȗ=Ɣf܂BifindsizeIvV́A+͎wTCYA-͎wTCYƂȂĂ܂Bj
-=Fw肵TCYƓ
-+Fw肵TCYȏ
--Fw肵TCYȉ

TCYĺAl{Pʂwł܂BPʂ́AB(ubN:512bytes)AK/M/G/T/P/E/Z/Y(1000ׂ̂)AKB/MB/GB/TB/PB/EB/ZB/YB(1024ׂ̂) ̂ꂩ1啶Ɋ֌WȂwł܂B1024ŁAPʂw肳ꂽꍇ̓oCgZo܂B̂߁APʂw肵Ƃ͏wł܂BPʂw肵Ȃꍇ͐̂ݎwł܂B
iڍׁFt@CTCYJavalong^gpĂ邽߁A8EB𒴂TCY͈܂Bj

*** suffix - gqZbgo
(ZkȂ) --suffix p[^:Ȃ
gq̃ZbgA܂胆j[NȈꗗo͂܂B
gq́A߂ďoɏo͂܂Bo͂鏇́ȀɂȂ܂B
t@C̍Ōɏo"."(sIh)ȍ~gqƂ݂Ȃďo͂܂B"."oꂵȂꍇ͊gqȂƂ݂ȂA"."o͂܂BfBNg͑ΏۊOłB

*** time - ŏIXV
 -t --time p[^:1.
t@C̍ŏIXV𒲂ׂ܂BiڍׁFjava.io.File#lastModified()̒lgp܂Bj
́A͈͎w{tlŎw肵܂BtĺAΒlƑΒlł̎w肪ł܂B
͈͎ẃA5̋L̂ꂩ1wł܂Bȗ=Ɣf܂B
-=Fw肵Pʂ͈͓̔
-]Fw肵ȑOixwj
-[Fw肵Ȍixwj
-+Fw肵Oixwj
--Fw肵ixwj

Βlw̏ꍇAN(yyyyMMdd)AN(yyyyMMddHH)AN(yyyyMMddHHmm)ANb(yyyyMMddHHmmss)wł܂B̂ƂAłʂ̒PʂwPʂƂȂ܂B
Βlw̏ꍇAl{PʂwłAlPʕk̎wƂȂ܂BPʂ́ADHMSiEEEbĵꂩ1啶Ɋ֌WȂwł܂B
w@͕GłAŏIIɂ2̎ԓ_̊ԂǂŔf܂B̐ǂł݂ĂB
	
ݓ2006/03/27ƂƂ
 
"=20060325"܂"=2d"w肵ꍇ
  Jn_ = 2006/03/2500:00:00
  I_ = 2006/03/2600:00:00ߋōł߂
    2006/03/25                 2006/03/26
     00:00:00                   00:00:00
  ------+--------------------------+---------------
        [                         ]
                         ܂
 
"[20060325"܂"[2d"w肵ꍇ
  Jn_ = 2006/03/2500:00:00
  I_ = 
    2006/03/25                 2006/03/26
     00:00:00                   00:00:00
  ------+--------------------------+---------------
        [
                         I_Ȃ
 
"-20060325"܂"-2d"w肵ꍇ
  Jn_ = 2006/03/2600:00:00
  I_ = 
    2006/03/25                 2006/03/26
     00:00:00                   00:00:00
  ------+--------------------------+---------------
                                   [
                                     I_Ȃ

܂A[#option.verbose:verboseIvV]tƏڍׂ\܂̂ŁAQlɂĂB
	
$ frui --verbose -t -20060201 -t ]20060327
[MODE]   directory=. verbose=true depthRange=
[PROPS]
[FILTER] Time(2006/02/02_00:00:00:000-) & Time(-2006/03/27_23:59:59:999)

*** text - eLXgt@C
 -T --text p[^:Ȃ
t@CeLXgt@Cǂ𒲂ׂ܂Bi"--not --binary" Ɠ`j̃IvV͏ɎԂ\܂Bڍׂ[#performance:ptH[}Xɂ]QƂĂB

*** upper - ̏
 -u --upper p[^:1.
vw肵ɒB_Ōł؂܂B

*** version - o[W\
 -v --version p[^:Ȃ
o[W\܂B

*** VERSION - o[Wڍו\
 -V --VERSION p[^:Ȃ
o[W̏ڍ׏\܂B

*** verbose - 璷bZ[W[h @option.verbose@
(ZkȂ) --verbose p[^:Ȃ
JnOɁAIvVƃvpeBo͂܂B
IɁAsԂƌʌo͂܂B

*** waste - 
 -w --waste p[^:Ȃ
Yt@CFruiṕuvɁûāviړj܂BṕuvɂẮA[#property.waste:wastevpeB]QƂĂB
uv̉ɓtiyyyyMMddj̃fBNg쐬Aɂ̉ɎiHHmmssj̃fBNg쐬܂Bt@ĆẢ[gƂ΃pXɈړ܂B

*** examine - t@Č
 -x --examine p[^:1.t@C
t@C̎ނ𒲂ׂ܂Bނ́A5̂ꂩ1啶Ɋ֌WȂwł܂B
-DFt@C̓fBNg
-FFt@C̓t@C
-HFt@C͉Bt@C
-RFt@Cǂݎ\
-WFt@C݉\

*** zip - ZIPt@CGg
 -z --zip p[^:1.ZIPt@C̃t@Cp^[
ZIPtH[}bgt@C̃GgsɌĂGREPs܂BreplaceIvVƓɂ͎wł܂B

----------------------------------------

** vpeBݒ

̋@\ł́AIvVł͂ȂݒKvƂ̂܂B܂Ȁڍׂݒł@\܂B́AvpeBɐݒ肵܂Bʏ́AVXevpeBiJava-DIvVjɎw肵܂B
"ݒl"́Aݒ肷lɂĂ̐łBݒl̃JbR̒l͊lłBJbRȂ̂͊l܂BiڍׁFu[lBoolean.getBoolean()Ŏ擾܂Bj

*** net.argius.frui.debug - fobO[h
ݒlFtrue/false(false)
G[ꍇɁAG[̏ڍׂo͂悤ɂ܂BiڍׁFX^bNg[XȂǂo͂܂Bj

*** net.argius.frui.detect.binary - oCit@Co
ݒlFtrue/false(false)
t@CȂǂsۂɁAoCit@CO邽߂Ɍosǂw肵܂Bw肵ꍇAoCit@ČosAoCit@C̏ꍇ͌Ώۂ珜O܂(NOT)B

*** net.argius.frui.detect.encoding - GR[fBO^Cvo
ݒlFtrue/false(false)
t@CȂǂsۂɁAGR[fBO^Cv̎osǂw肵܂BVXe̊GR[fBOł͂Ȃt@CꍇɎgp܂Bt@Ce̕ύXs̏ꍇ́ÃIvVw肵ȂƃGR[fBO̐Ă܂܂B

*** net.argius.frui.detect.encoding.class - GR[fBO^CvoNX
ݒlFSCNX
GR[fBO^CvosNXw肵܂Bw肷NX́Anet.argius.frui.io.EncodingTypẽTuNXłKv܂B

*** net.argius.frui.format.filesize - t@CTCYtH[}bg
ݒlFltH[}bg
t@CTCYõ͎tH[}bgw肵܂Bw肵ȂꍇAtH[}bgɏo͂܂BiڍׁFw肵ꍇA java.text.DecimalFormatgp܂Bj

*** net.argius.frui.format.date - tH[}bg
ݒlFtH[}bg(yyyy/MM/dd HH:mm:ss)
õ͎tH[}bgw肵܂BiڍׁFjava.text.SimpleDateFormatgp܂Bj

*** net.argius.frui.ignore - 菜Op^[
ݒlFp^[̃Xy[X؂胊Xg
ɌΏۂOp^[w肵܂Bp^[[#option.find:findIvV]Ɠ̂wł܂Bw肷ꍇ́Adp("")ň݂͂܂B

*** net.argius.frui.modify - ύX̋ @property.modify@
ݒlFtrue/false(false)
!ӁF̐ݒLɂƁA厖ȃt@Cj󂵂Ă܂A폜Ă܂肷\܂
t@CύX鏈邩ǂw肵܂BȂꍇAɓǂݎpŏsAt@C̈ړe̕ύX̓G[ƂȂ܂B

*** net.argius.frui.path.trim - pX̃g
ݒlFtrue/false(false)
ʂɏo͂pX̐擪ɕtĂAJgfBNg̕菜ďo͂邩ǂw肵܂Bʂ̏o͕ߖ񂵂ꍇȂǂɎgp܂B
g͏ô͎ݍsAp^[}b`ł̓gĂȂԂ̃pXŏ܂B

*** net.argius.frui.path.separator - pXZp[^
ݒlFpXZp[^
VXẽpXZp[^ƈقȂ镶Ōʂo͂ꍇɎw肵܂B
u͏ô͎ݍsAp^[}b`ł͒uȌԂ̃pXŏ܂B

*** net.argius.frui.replace - Replace̎gp
!ӁF̐ݒLɂƁA厖ȃt@Cj󂵂Ă܂A폜Ă܂肷\܂
ݒlFtrue/false(false)
ReplaceIvV̎gp邩ǂw肵܂BɁAReplace͋͂ȏ̂߁A[#property.modify:modifyvpeB]ƓdɃK[h悤ɂĂ܂B

*** net.argius.frui.waste - ̏ꏊ @property.waste@
ݒlFfBNg̃pX
wasteIvVŎgpfBNgw肵܂Bw肵ȂꍇAwasteIvVgpł܂B

----------------------------------------

** ptH[}Xɂ @performance@

Frui̐݌v猩ptH[}XɂĂ̐łBł́ȀڍׂĐĂ܂B

*** ݌vj

FruíAڍׂ̃ptH[}XA[UC^tF[XvO̍\Pɂ邱ƂD悵Ă܂B[UC^tF[Xコ邱ƂŁAsJn܂ł̑xPłƍlłB͂15bď10bŏI鏈ƁA͂5bď20bŏI鏈ł́A҂̂قlԂ̘J͂炷Ƃł܂B
N̏ɊւẮAɗ͏xオ悤ɂĂ܂BႦ΃IvV̑gݗĂ̓CCōsACX^X̒xAȂǂł(AAɂĊmɃptH[}XPĂ邩ǂ͎؂Ă܂)BJava̓vZXN̒xiɏj͒vIłAn[hEFA̐\΁AȂ̑xo悤ɂȂĂ܂B

*** p^[}b`

APɂ邽߂ɁAp^[SĐK\ŏ悤ɂĂ܂B
ȂAK\svȏꍇ̃GXP[vlƁApĕGɂȂĂ܂߁AK\̏ꍇƓC^tF[Xp^[}b`Ēu܂B

*** oCit@Co

oCit@ČóAt@CŏTCY(64KB)܂łǂݍ݁Aʏ̕Ƃĕ\\łȂf[^_ŃoCit@CƔfAł؂܂BeLXgt@Čo͂̋tŝŁAKTCY܂œǂݍł܂ƂɂȂ܂BiAAGR[fBO^Cv肳Ăꍇ͂̎_ŃeLXgt@CƔf܂Bj̏ŏ\ɍi荞񂾂ƂŎw肷邱Ƃ߂܂B

*** ̗ǂw

͎w肳ꂽɕ]邽߁A傫i荞߂Ɏw肷΁Aオ܂B
̊ϓ_番ނƁȂɁAt@CpXp^[At@CAt@CeƂȂ܂Bt@Ce1t@Cɂs܂̂ŁAKRIɏdƂȂ܂B܂A^CX^vTCYȂǂ̃t@C𒲂ׂ鏈́At@CpX𕶎Ƃď肷莞Ԃ̂鏈łB
̂悤Ȏw菇͔Ɍ̈ƂȂĂ܂܂B
	
$ frui -T -s +25K .java  # ׂẴt@CɃeLXgt@CI

̏ꍇ́AOq̑ɏёւƏiiɌサ܂B܂A璷ȏƎvꍇłAΏۂ̃t@CɊ܂܂镶1ł肳Ă΍ŏɎw肷΁A啝Ȏ}肪҂ł܂B
	
$ frui F .java -s +25K -T  # pX"F"܂ł̂2Ԗڈȍ~̏ɒł

----------------------------------------

** J҂̂߂

*** APIƂĎgp

FruíAR}hƂĂłȂAAPIƂĂxpł悤ɂȂĂ܂B Ⴆ΁Â悤ɂ΃JgfBNgȉׂ̂ĂJava\[Xt@C擾ł܂B
	
File[] files = FruiRunner.getFiles(new Operation[]{new Find(".java")});

ڂ́A"doc" JavadocA"src.sample"ɃTv\[X܂̂ŁAQƂĂB

*** evaluate̎g @howtouseevaluate@

net.argius.frui.OperationC^tF[XNX쐬ƁAevaluateIvVŎgp邱Ƃo܂B
evaluateIvV̓p[^ςɂȂĂ܂B̂悤Ɏw肷邱Ƃł܂B
-11̏ꍇ(܂1`9)́A1RXgN^̈̐A2"SCNX"Aȍ~͑1Ŏw肵̃p[^ƂȂ
-LȊȌꍇA"SCNX"̂

	
F
$ frui -e 3 localhost.Evaluator A B C
localhost.EvaluatorNẌ3̃RXgN^Ă΂

*** Java1.3Ŏgpꍇ @java1.3@

FruíAJava1.4瓱ꂽjava.util.regexpbP[WƁA𗘗pjava.lang.StringNX̐V\bh𗘗pĂ邽߁AJava1.3ł̓RpCł܂BAAK\Ɋւ鏈͈ˑ؂oĂ܂̂ŁAT[hp[eB̒񋟂Ă鐳K\Cuɐ؂ւΎg悤ɂȂƎv܂B
"src.forJava1.3"ɁAJakarta-RegexgpႪ܂̂ŎQlɂĂBipattern#replace()𗘗p@\͑ΉĂ܂Bj

----------------------------------------

2009 argius
