1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| #!/bin/sh FILENAME=policyno.unl PARALLEL=10 TOTALROW=`wc -l $FILENAME | awk '{print $1}'` DIVROW=$(( $TOTALROW / $PARALLEL )) LEFTROW=$(( $TOTALROW % $PARALLEL )) for ((i=1;i<=$PARALLEL;i++)) do if [ $i -le $LEFTROW ] then PIECEROW=$(( $DIVROW + 1 )) else PIECEROW=$DIVROW fi case $i in 1) head -n $PIECEROW $FILENAME > $FILENAME.$i GETROW=$PIECEROW ;; $PARALLEL) tail -n $PIECEROW $FILENAME > $FILENAME.$i ;; *) GETROW=$(( $GETROW + $PIECEROW )) head -n $GETROW $FILENAME |tail -n $PIECEROW >$FILENAME.$i ;; esac done
|