作者: Zazel
日時: 2002/4/09(16:45)
Zazelです。

TeXが出てきたからには、sed版も公開せねばなるまい。
# これが病的と呼ばれる一因か?! (^_^)

ちなみに負の数は実装していませんが、小数や多倍長演算はできます。

-----^ addition.sed ( date:02-04-09 time:12:46:26 ) -< cut here
s/^ +//
s/ +$//
/^[0-9.][0-9.]*$/!q
/^0$/{
    x
    q
}

x
/^$/d
    
G
s/\n/ /
s/$/=/

:split1
s/^\([0-9]*\.\)\([0-9]\)\([0-9]*\) \([0-9]*\.\)\([0-9]\)\([0-9]*\)=\(.*\)/\1\3 \4\6=\7 \2\5/
t split1
:split2
s/\.\([0-9]\)\(.*=.*\)/.\2 \1/
t split2
s/\.//g
s/=/=./
:split3
s/^\([0-9]*\)\([0-9]\) \([0-9]*\)\([0-9]\)=/\1 \3=\2\4 /
t split3
:split4
s/\([0-9]\)\([0-9]\)\(.*=\)/\1 \2\3/
t split4
s/=/ /
s/   */ /g
s/ \././
s/\. /./

:loop
s/^[^ ]/ &/

s/00*\([0-9]\)/\1/g
s/\([0-9]\)0/\1/g

s/11/2/g
s/12/3/g
s/13/4/g
s/14/5/g
s/15/6/g
s/16/7/g
s/17/8/g
s/18/9/g
s/\([ .][0-9]*\)19/1\10/g

s/21/3/g
s/22/4/g
s/23/5/g
s/24/6/g
s/25/7/g
s/26/8/g
s/27/9/g
s/\([ .][0-9]*\)28/1\10/g
s/\([ .][0-9]*\)29/1\11/g

s/31/4/g
s/32/5/g
s/33/6/g
s/34/7/g
s/35/8/g
s/36/9/g
s/\([ .][0-9]*\)37/1\10/g
s/\([ .][0-9]*\)38/1\11/g
s/\([ .][0-9]*\)39/1\12/g

s/41/5/g
s/42/6/g
s/43/7/g
s/44/8/g
s/45/9/g
s/\([ .][0-9]*\)46/1\10/g
s/\([ .][0-9]*\)47/1\11/g
s/\([ .][0-9]*\)48/1\12/g
s/\([ .][0-9]*\)49/1\13/g

s/51/6/g
s/52/7/g
s/53/8/g
s/54/9/g
s/\([ .][0-9]*\)55/1\10/g
s/\([ .][0-9]*\)56/1\11/g
s/\([ .][0-9]*\)57/1\12/g
s/\([ .][0-9]*\)58/1\13/g
s/\([ .][0-9]*\)59/1\14/g

s/61/7/g
s/62/8/g
s/63/9/g
s/\([ .][0-9]*\)64/1\10/g
s/\([ .][0-9]*\)65/1\11/g
s/\([ .][0-9]*\)66/1\12/g
s/\([ .][0-9]*\)67/1\13/g
s/\([ .][0-9]*\)68/1\14/g
s/\([ .][0-9]*\)69/1\15/g

s/71/8/g
s/72/9/g
s/\([ .][0-9]*\)73/1\10/g
s/\([ .][0-9]*\)74/1\11/g
s/\([ .][0-9]*\)75/1\12/g
s/\([ .][0-9]*\)76/1\13/g
s/\([ .][0-9]*\)77/1\14/g
s/\([ .][0-9]*\)78/1\15/g
s/\([ .][0-9]*\)79/1\16/g

s/81/9/g
s/\([ .][0-9]*\)82/1\10/g
s/\([ .][0-9]*\)83/1\11/g
s/\([ .][0-9]*\)84/1\12/g
s/\([ .][0-9]*\)85/1\13/g
s/\([ .][0-9]*\)86/1\14/g
s/\([ .][0-9]*\)87/1\15/g
s/\([ .][0-9]*\)88/1\16/g
s/\([ .][0-9]*\)89/1\17/g

s/\([ .][0-9]*\)91/1\10/g
s/\([ .][0-9]*\)92/1\11/g
s/\([ .][0-9]*\)93/1\12/g
s/\([ .][0-9]*\)94/1\13/g
s/\([ .][0-9]*\)95/1\14/g
s/\([ .][0-9]*\)96/1\15/g
s/\([ .][0-9]*\)97/1\16/g
s/\([ .][0-9]*\)98/1\17/g
s/\([ .][0-9]*\)99/1\18/g

/[0-9][0-9]/b loop

s/ //g
x
d
-----$ addition.sed ( lines:135 words:188 size:2155 ) -< cut here


(* SEKI Masatoshi  /  zazel@..."jp"         *)
(*  Would you hold my hand? Softly, let's linger. *)