V10/cmd/dag/dagpsjobs

awk '
# new awk script that makes seperate print jobs of large dag PS files.
# you may optionally set "jobname" and "jobpages" on the awk command line.
#
#	dag -Tps -p8.5x11 huge.dag >huge.ps
#	awk -f makejobs.awk jobpages=4 <huge.ps
#   for psfile in job*.ps
#	do
#		lpr $psfile
#	done
BEGIN		{
				printf("job pages are %s\n",jobpages);
				if (jobname=="") jobname = "job";
				if (jobpages==0) jobpages=1;
				job = 0;
			}
(currentpage == 0 && $0 !~ "%%Page") {
				nhline = NR;
				header[nhline] = $0;
				next;
			}
/%%Page/	{
				currentpage = $3;
				if (jobpages == 1 || currentpage % jobpages == 1) {
					if (ofile != "") close(ofile);
					ofile = jobname job ".ps";
					job++;
					print header[1] > ofile;
					for (i = 2; i <= nhline; i++) print header[i] >> ofile;
				}
			}

			{
				print $0 >> ofile;
			}
' $@