#!/bin/sh # PSPAGES -- Select ordinal pages from a PostScript file. progname=`basename $0` if [ $# -lt 2 ] then echo "Usage: $progname file pagelist [pagelist ...] Example: $progname foo.ps 1 4 7-11 35" exit fi file=$1 if [ "X$file" = X- ] then file="" fi shift prog="NR==1,/^%%EndProlog/ {print} /^%%MoreProlog/,/^%%EndMoreProlog/ {print} /^%%BeginSetup/,/^%%EndSetup/ {print}" for arg do case "$arg" in [0-9]*-[0-9]*) sp=`echo $arg | cut -f1 -d-` ep=`echo $arg | cut -f2 -d-` ep=`expr $ep + 1`;; [0-9]*) sp=$arg ep=`expr $sp + 1`;; *) echo "bad page number: $arg" exit;; esac prog="$prog /^%%Page:.* $sp\$/,/^%%Page:.* $ep\$/ {print}"; done prog="$prog /^%%Page:.* $ep\$/ {exit}" set - awk "$prog" $file | awk ' /^%%Pages:/ {print "%%Pages: (atend)"; next} /^%%Page:/ {if (ppr == NR-1) next; print "%%Page:", ++np; ppr = NR; next} {print} END {print "%%Pages:", np}'