I'm currently using: # convert to g3 g3files=() a=1 for(i in $infiles){ switch(`{file <$infiles(1)}){ case *:*g3* *:*fax* g3files=($g3files $i) case *:*postscript gs -dSAFER '-sDEVICE=dfaxlow' '-sOUTPUTFILE='$tmp'.'$#a'.%03d' -dNOPAUSE -dQUIET $i quit.ps g3files=($g3files $tmp.$#a.*) case * lp -dstdout $i > $tmpps gs -dSAFER '-sDEVICE=dfaxlow' '-sOUTPUTFILE='$tmp'.'$#a'.%03d' -dNOPAUSE -dQUIET $tmpps quit.ps g3files=($g3files $tmp.$#a.*) } a=($a $a) }