brennan@ssc-vax.UUCP (Michael D Brennan) (05/06/91)
The following shell & (new) awk program prints the last n pages. If you get more than 65 lines to a page, the program that inserts the ^L's should be fixed. ------------------------------------------------------------- #!/bin/sh # usage: lastpages -- prints 1 page reads stdin # lastpages n -- prints n pages reads stdin # lastpages n files -- prints n pages, reads file list program='BEGIN{RS = ORS = "\f" } { page[NR] = $0 if ( NR > numpages ) delete page[NR-numpages] } END { i = NR - numpages + 1 if ( i <= 0 ) i = 1 while( i <= NR ) print page[i++] }' case $# in 0) awk "$program" numpages=1 - ;; 1) awk "$program" numpages=$1 - ;; *) pages=$1 ; shift awk "$program" numpages=$pages $* ;; esac