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

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
Powered by shinGETsu.