#!/bin/bash
# Usage: share_by_task.sh [-f format] [-s from to] N task
# Filter a sequence by mod N == task
# Sequence is stdin, or if -s then seq $from $t
if [ "$1" = '-f' ]
then
 shift
 f=$1
 shift
else
 f='%s\n'
fi

if [ "$1" = '-s' ]
then
 shift
 source="seq $1 $2"
 shift
 shift
else
 source="cat"
fi

pos=0
${source} | while read v
 do
  if [ $((++pos % $1)) -eq $2 ]
  then
    printf "$f" $v
  fi
 done
