Google

$BA0(B - $B - $BL\

$B%3%^%s%I%i%$%s%*%W%7%g%s(B

Ruby$B%$%s%?%W%j%?$O0J2<$N%3%^%s%I%i%$%s%*%W%7%g%s$r

-0$B?t;z(B
$BF~NO%l%3!<%I%;%Q%l!<%?(B(`$/')$B$N(B8$B?J?t$G;XDj$7$^$9!%(B $B?t;z$r;XDj$7$J$$>l9g$O%L%k%-%c%i%/%?$,%;%Q%l!<%?$K$J$j$^$9!%(B $B?t$N8e$KB>$N%9%$%C%A$,$"$C$F$b9=$$$^$;$s!%(B -00$B$G(B, $B%Q%i%0%i%U%b!<%I(B, -0777$B$G(B ($B$=$N%3!<%I$r;}$DJ8;z$OB8:_$7$J$$$N$G(B)$BA4%U%!%$%k$r0lEY$KFI$_(B $B9~$`%b!<%I$K@_Dj$G$-$^$9!%(B
-a
`-n'$B$d(B`-p'$B$H$H$b$KMQ$$$F(B, $B%*!<%H%9%W%j%C%H%b!<%I$r(BON$B$K$7$^$9!%(B $B%*!<%H%9%W%j%C%H%b!<%I$G$O3F%k!<%W$N@hF,$G(B,
	$F = $_.split
$B$,-c
$B%9%/%j%W%H$NFbIt7A<0$X$N%3%s%Q%$%k$N$_$r9T$$(B, $B-Kc
Ruby$B$N=hM}$9$k4A;z%3!<%I$r;XDj$7$^$9!%(B Ruby$B$O;XDj$5$l$?J8;z(B $B$,(B `E'$B$^$?$O(B`e'$B$N>l9g$OJ8;zNs$d%"%/%;%9$9$k%U%!%$%k$NFbMF$N(B $B%3!<%I$,(BEUC$B$G$"$k$H2>Dj$7$^$9!%F1MM$K(B`S'$B$^$?$O(B`s'$B$N>l9g$O(B SJIS$B$H$7$F=hM}$7$^$9!%(B`N'$B$O4A;z$r=hM}$7$^$;$s!%%G%U%)%k%H$O(B EUC$B$G$9!%(B

$B$3$N%*%W%7%g%s$O>-MhJ8;z%3!<%I$Nl9gEy$K$O(B $BJQ99$5$l$k2DG=@-$,$"$j$^$9!%(B

-d
--debug
$B%G%P%C%0%b!<%I$r(Bon$B$K$7$^$9!%$3$N%U%i%0$,%;%C%H$5$l$k$H%7%9%F(B $B%`JQ?t(B`$DEBUG'$B$,%;%C%H$5$l$^$9!%(B
-e script
$B%3%^%s%I%i%$%s$+$i%9%/%j%W%H$r;XDj$7$^$9!%(B-e$B%*(B $B%W%7%g%s$rIU$1$?;~$K$O0z?t$+$i%9%/%j%W%H%U%!%$%kL>$r-F regexp
$BF~NO%U%#!<%k%I%;%Q%l!<%?(B(`$;')$B$NCM$rJ8;zNs$K%;%C(B $B%H$7$^$9!%(B
-h
--help
$B%3%^%s%I%i%$%s%*%W%7%g%s$N35MW$rI=<($7$^$9!%(B
-i [extension]
$B0z?t$G;XDj$5$l$?%U%!%$%k$NFbMF$rCV$-49$($k(B(in-place edit)$B$3(B $B$H$r;XDj$7$^$9!%85$N%U%!%$%k$O3HD%;R$r$D$1$?7A$GJ]B8$5$l$^$9!%(B $B3HD%;R$,$J$1$l$P!$%P%C%/%"%C%W$O9T$o$l$:!$JQ99$5$l$?%U%!%$%k(B $B$@$1$,;D$j$^$9!%(B

$BNc(B:

	% echo matz > /tmp/junk
	% cat /tmp/junk
	matz
	% ruby -p -i.bak -e '$_.upcase!' /tmp/junk
	% cat /tmp/junk
	MATZ
	% cat /tmp/junk.bak
	matz
-I directory
$B%U%!%$%k$r%m!<%I$9$k%Q%9$r;XDj(B($BDI2C(B)$B$7$^$9!%;XDj$5$l$?%G%#%l(B $B%/%H%j$O(BRuby$B$NG[NsJQ?t(B(`$:')$B$KDI2C$5$l$^$9!%(B
-l
$B9TKv$N<+F0=hM}$r9T$$$^$9!%$^$:!$(B`$\'$B$r(B `$/'$B$HF1$8CM$K@_Dj$7(B, print$B$G$N=PNO(B $B;~$K2~9T$rIU2C$9$k$h$&$K$7$^$9!%$=$l$+$i(B, -n $B%U%i%0$^$?$O(B-p$B%U%i%0$,;XDj$5$l$F$$$k$H(B gets $B$GFI$_9~$^$l$?3F9T$N:G8e$KBP$7$F(B chop!$B$r9T$$$^$9!%(B
-n
$B$3$N%U%i%0$,%;%C%H$5$l$k$H%W%m%0%i%`A4BN$,(B sed -n$B$d(Bawk $B$N$h$&$K(B
	while gets
	  ...
	end
$B$G0O$^$l$F$$$k$h$&$KF0:n$7$^$9(B.
-p
-n$B%U%i%0$H$[$\F1$8$@$,(B, $B3F%k!<%W$N:G8e$KJQ?t(B`$_' $B$NCM$r=PNO$9$k$h$&$K$J$j$^$9!%(B

$BNc(B:

	% echo matz | ruby -p -e '$_.tr! "a-z", "A-Z"'
	MATZ
-r $B%U%!%$%kL>(B
$B%9%/%j%W%H$G;XDj$5$l$k%U%!%$%k$r(B require$B$7$^$9!%(B `-n'$B%*%W%7%g%s!$(B`-p'$B%*%W%7%g%s$H$H$b$K;H$&;~$KFC$KM-8z$G$9!%(B
-s
$B%9%/%j%W%HL>$KB3$/(B, `-'$B$G;O$^$k0z?t$r2r$NBg0hJQ?t$KCM(B $B$r@_Dj$7$^$9!%(B`--'$B$J$k0z?t0J9_$O2r$ARGV'$B$+$i $BNc(B:

	#! /usr/local/bin/ruby -s
	# prints "true" if invoked with `-xyz' switch.
	print "true\n" if $xyz
-S
$B%9%/%j%W%HL>$,(B`/'$B$G;O$^$C$F$$$J$$>l9g(B, $B4D6-JQ?t(B PATH$B$NCM$r;H$C$F%9%/%j%W%H$rC5$9$3$H$r;XDj$7$^(B $B$9!%(B $B$3$l$O!"(B`#!'$B$r%5%]!<%H$7$F$$$J$$%^%7%s$G!"(B `#!' $B$K$h$k #!/bin/sh exec ruby -S -x $0 "$@" #! ruby

$B%7%9%F%`$O:G=i$N9T$K$h$j!$%9%/%j%W%H$r(B/bin/sh $B$KEO$7$^$9!%(B/bin/sh$B$O(B2$B9TL\$r-x $B%*%W%7%g%s$K$h$j(B`#!'$B$G;O$^$j(B, "ruby"$B$H$$$&J8;zNs$r4^$`9T$^$G$r(B $BFI$_Ht$P$7$^$9!%(B

$B%7%9%F%`$K$h$C$F$O(B $0$B$OI,$:$7$b%U%k%Q%9$r4^$^$J(B $B$$$N$G!$(B`-S'$B$rMQ$$$F(BRuby$B$KI,MW$K1~$8$F%9%/%j%W%H$rC5$9$h$&$K(B $B;X<($9$kI,MW$,$"$j$^$9!%(B

-T [level]
$BIT=cEY%A%'%C%/$r9T$$$^$9!%%l%Y%k$r;XDj$9$k$H0BA4EY%l%Y%k$r$=(B $B$N%l%Y%k$K@_Dj$7$^$9!%(BCGI$B%W%m%0%i%`$J$I$G$O(B-T1 $BDxEY$r;XDj$7$F$*$/J}$,NI$$$G$7$g$&!%(B
-v
--verbose
$B>iD9%b!<%I!%5/F0;~$K%P!<%8%g%s$NI=<($r9T$$(B, $B%7%9%F%`JQ?t(B $VERBOSE$B$r(BTRUE$B$K%;%C%H$7$^$9!%$3$NJQ?t$,(BTRUE$B$G(B $B$"$k;~(B, $B$$$/$D$+$N%a%=%C%I$OiD9$J%a%C%;!<%8$r=PNO$7(B $B$^$9!%(B`-v'$B%*%W%7%g%s$,;XDj$5$l$F(B, $B$=$l0J30$N0z?t$,$J$$;~$K$O(B $B%P!<%8%g%s$rI=<($7$?8e(B, $B--version
Ruby$B$N%P!<%8%g%s$rI=<($7$^$9!%(B
-w
$B%P!<%8%g%s$NI=<($r9T$&;vL5$/>iD9%b!<%I$K$J$j$^$9!%(B
-x[directory]
$B%a%C%;!<%8Cf$N%9%/%j%W%H$rEOF($B%U%!%$%k(B $B$N=*$j(B), ^D($B%3%s%H%m!<%k(BD), ^Z($B%3(B $B%s%H%m!<%k(BZ)$B$^$?$OM=Ls8l(B__END__$B$G;XDj$5$l$^$9!%(B $B%G%#%l%/%H%jL>$r;XDj$9$k$H!$%9%/%j%W%H-X directory
$B%9%/%j%W%H-y
--yydebug
$B%3%s%Q%$%i%G%P%C%0%b!<%I!%%9%/%j%W%H$rFbItI=8=$K%3%s%Q%$%k$9(B $B$k;~$N9=J82r@O$N2aDx$rI=<($7$^$9!%$3$NI=<($OHs>o$K>iD9$J$N$G(B, $B%3%s%Q%$%i$=$N$b$N$r%G%P%C%0$9$k?M0J30$K$OI,MW$J$$$H;W$$$^$9!%(B

$BA0(B - $B - $BL\

matz@netlab.co.jp