--- /dev/null
+#! /bin/sh
+FILE=$1
+P=$2
+NUM=$3
+
+split_point() {
+ FILE=$1
+ P=$2
+ NUM=$3
+ SIZE=$( stat -c %s "$FILE" )
+
+ if [ "$P" -eq "0" ]; then
+ echo 0
+ elif [ "$P" -eq "$NUM" ]; then
+ echo $SIZE
+ else
+ TENTATIVE_SPLIT_POINT=$(( SIZE * P / NUM ))
+ OFFS=$( tail -c +${TENTATIVE_SPLIT_POINT} "$FILE" | grep -b '^$' | head -n 1 | cut -d: -f1 )
+ if [ -z "$OFFS" ]; then
+ echo $SIZE
+ else
+ echo $(( TENTATIVE_SPLIT_POINT + OFFS ))
+ fi
+ fi
+}
+
+FROM=$( split_point "$FILE" $P $NUM )
+TO=$( split_point "$FILE" $(( P + 1 )) $NUM )
+SIZE=$(( TO - FROM ))
+
+tail -c +$FROM "$FILE" | head -c $SIZE