【自作】 プログラミング 【してみた】

1753a8e4 anonymous 2012-06-28 19:08
>>2cb87f90
思いついてこんなの書いてみたけど、めっちゃ動作が重い。あたりまえだけど。cmpやnkfもつかってるしだめだめだねー。
trapしてるからbash専用? そうでもないのかな?

#!/bin/sh

MAXLINE=63
MAXLENGTH=159
MORE="--more--"
ORIG="/tmp/ep.orig.$$"
SAVE="/tmp/ep.save.$$"
TMP="/tmp/ep.tmp.$$"
OUT="/tmp/ep.out.$$"
NULL="/dev/null"

CAT="cat"
WC="wc"
EXPR="expr"
HEAD="head"
TAIL="tail"
CMP="cmp"
NKF="nkf"

FILE="$1"

trap "rm -f $ORIG $SAVE $TMP $OUT; exit" 1 2 3 15

cp $FILE $ORIG
COUNT=0
LINE=0
$CAT $NULL > $SAVE
$CAT $NULL > $OUT
while ! $CMP -s $ORIG $SAVE; do
    COUNT=`$EXPR $COUNT + 1`
    $HEAD -$COUNT $FILE | $TAIL -1 > $TMP
    LENGTH=`$CAT $TMP | $NKF -e | $WC -c`
    LENGTH=`$EXPR $LENGTH / $MAXLENGTH + 1`
    LINE=`$EXPR $LINE + $LENGTH`
    $CAT $TMP >> $SAVE
    $CAT $TMP >> $OUT
    if test $LINE -ge $MAXLINE; then
        $CAT $OUT
        echo $MORE
        $CAT $NULL > $OUT
        LINE=0
        read q
    fi
done

$CAT $OUT

rm -f $ORIG $SAVE $TMP $OUT

Top of this page. | <<last

limit: 15360KB

(【自作】 プログラミング 【してみた】/50/0.0MB)

Powered by shinGETsu.