Versão Sed para diversão:
lines=$(wc -l <sourcefile.txt)
perfile=$(( (lines+29)/30 )) # see https://www.rfc-editor.org/rfc/rfc968.txt
last=0
sed -nf- sourcefile.txt <<EOD
$(while let $((last<lines)); do
mkdir -p prog$((last/perfile+1))
echo $((last+1)),$((last+perfile)) w prog$((last/perfile+1))/myfile.txt
: $((last+=perfile))
done)
EOD