How to print last <n> pages of a file?

Randal L. Schwartz merlyn at iwarp.intel.com
Fri May 3 04:26:39 AEST 1991


In article <1991May2.162355.779 at elroy.jpl.nasa.gov>, pjs at euclid (Peter Scott) writes:
| How can I print the last <n> pages of a text file?  Said file has form
| feeds at random places, so "tail -132 file | lpr" won't work.  Now, I tried
| "pr file | tail -132" but that includes the 5-line headers and footers
| that I don't want and don't get with "lpr file".  So I tried 
| "pr -t file | tail -132" but the -t option turns off page filling so the
| form feeds aren't expanded :-(.
| 
| Any suggestions?  SunOS 4.1 over here.

A quick Perl solution:

################################################## snip
#!/usr/bin/perl

$tail = shift || 1;
	## first arg is number of pages to tail (default is 1)
	## rest of args are processed like "cat"

$/ = "\f"; # input separator set to form-feed
while (<>) {
	push(@q,$_);
	shift(@q) while @q > $tail; # keep only $tail pages in queue
}
print @q;
exit 0;
################################################## snip

Perl is available for free for all UNIX-like os's at any of the GNU
sites or devvax.jpl.nasa.gov.

print "Just another Perl hacker,"
-- 
/=Randal L. Schwartz, Stonehenge Consulting Services (503)777-0095 ==========\
| on contract to Intel's iWarp project, Beaverton, Oregon, USA, Sol III      |
| merlyn at iwarp.intel.com ...!any-MX-mailer-like-uunet!iwarp.intel.com!merlyn |
\=Cute Quote: "Intel: putting the 'backward' in 'backward compatible'..."====/



More information about the Comp.unix.questions mailing list