home *** CD-ROM | disk | FTP | other *** search
/ GEMini Atari / GEMini_Atari_CD-ROM_Walnut_Creek_December_1993.iso / files / gnu / gawk213b / lastnpag / text0000.txt < prev   
Encoding:
Text File  |  1993-07-29  |  789 b   |  36 lines

  1.  
  2. The following shell & (new) awk program prints the last n pages.
  3.  
  4. If you get more than 65 lines to a page, the program that inserts
  5. the ^L's should be fixed.
  6.  
  7. -------------------------------------------------------------
  8. #!/bin/sh
  9. # usage: lastpages   --  prints 1 page reads stdin
  10. #        lastpages  n -- prints  n pages reads stdin
  11. #        lastpages  n  files -- prints n pages, reads file list
  12.  
  13. program='BEGIN{RS = ORS = "\f" }
  14.  
  15.  
  16. { page[NR] = $0 
  17.   if ( NR > numpages )  delete  page[NR-numpages]
  18. }
  19.  
  20. END { 
  21.   i = NR - numpages + 1
  22.   if ( i <= 0 ) i = 1
  23.  
  24.   while( i <= NR )  print page[i++]
  25. }'
  26.  
  27.  
  28. case $# in 
  29. 0)  awk "$program" numpages=1 - ;;
  30. 1)  awk "$program" numpages=$1 - ;;
  31. *)  pages=$1 ; shift
  32.     awk "$program" numpages=$pages  $* ;;
  33. esac
  34.  
  35.  
  36.