2004-11-03 13:51:07 +00:00
|
|
|
.\" Copyright (c) 2001-2003 The Open Group, All Rights Reserved
|
2007-06-20 22:33:04 +00:00
|
|
|
.TH "PR" 1P 2003 "IEEE/The Open Group" "POSIX Programmer's Manual"
|
2004-11-03 13:51:07 +00:00
|
|
|
.\" pr
|
2007-09-20 06:03:25 +00:00
|
|
|
.SH PROLOG
|
|
|
|
This manual page is part of the POSIX Programmer's Manual.
|
|
|
|
The Linux implementation of this interface may differ (consult
|
|
|
|
the corresponding Linux manual page for details of Linux behavior),
|
|
|
|
or the interface may not be implemented on Linux.
|
2004-11-03 13:51:07 +00:00
|
|
|
.SH NAME
|
|
|
|
pr \- print files
|
|
|
|
.SH SYNOPSIS
|
|
|
|
.LP
|
|
|
|
\fBpr\fP
|
|
|
|
\fB[\fP\fB+\fP\fIpage\fP\fB][\fP\fB-\fP\fIcolumn\fP\fB][\fP\fB-adFmrt\fP\fB][\fP\fB-e\fP\fB[\fP\fIchar\fP\fB][\fP\fI
|
|
|
|
gap\fP\fB]][\fP\fB-h\fP \fIheader\fP\fB][\fP\fB-i\fP\fB[\fP\fIchar\fP\fB][\fP\fIgap\fP\fB]]
|
|
|
|
.sp
|
|
|
|
\fP \fB\ \ \ \ \ \ \fP \fB[\fP\fB-l\fP
|
|
|
|
\fIlines\fP\fB][\fP\fB-n\fP\fB[\fP\fIchar\fP\fB][\fP\fIwidth\fP\fB]][\fP\fB-o\fP
|
|
|
|
\fIoffset\fP\fB][\fP\fB-s\fP\fB[\fP\fIchar\fP\fB]][\fP\fB-w\fP \fIwidth\fP\fB][\fP\fB-fp\fP\fB]
|
|
|
|
.br
|
|
|
|
\fP \fB\ \ \ \ \ \ \fP \fB[\fP\fIfile\fP\fB...\fP\fB]\fP
|
|
|
|
.SH DESCRIPTION
|
|
|
|
.LP
|
|
|
|
The \fIpr\fP utility is a printing and pagination filter. If multiple
|
|
|
|
input files are specified, each shall be read, formatted,
|
|
|
|
and written to standard output. By default, the input shall be separated
|
|
|
|
into 66-line pages, each with:
|
|
|
|
.IP " *" 3
|
|
|
|
A 5-line header that includes the page number, date, time, and the
|
|
|
|
pathname of the file
|
|
|
|
.LP
|
|
|
|
.IP " *" 3
|
|
|
|
A 5-line trailer consisting of blank lines
|
|
|
|
.LP
|
|
|
|
.LP
|
|
|
|
If standard output is associated with a terminal, diagnostic messages
|
|
|
|
shall be deferred until the \fIpr\fP utility has
|
|
|
|
completed processing.
|
|
|
|
.LP
|
|
|
|
When options specifying multi-column output are specified, output
|
|
|
|
text columns shall be of equal width; input lines that do not
|
|
|
|
fit into a text column shall be truncated. By default, text columns
|
|
|
|
shall be separated with at least one <blank>.
|
|
|
|
.SH OPTIONS
|
|
|
|
.LP
|
|
|
|
The \fIpr\fP utility shall conform to the Base Definitions volume
|
|
|
|
of IEEE\ Std\ 1003.1-2001, Section 12.2, Utility Syntax Guidelines,
|
|
|
|
except that: the \fIpage\fP option has a
|
|
|
|
\fB'+'\fP delimiter; \fIpage\fP and \fIcolumn\fP can be multi-digit
|
|
|
|
numbers; some of the option-arguments are optional; and
|
|
|
|
some of the option-arguments cannot be specified as separate arguments
|
|
|
|
from the preceding option letter. In particular, the
|
|
|
|
\fB-s\fP option does not allow the option letter to be separated from
|
|
|
|
its argument, and the options \fB-e\fP, \fB-i\fP, and
|
|
|
|
\fB-n\fP require that both arguments, if present, not be separated
|
|
|
|
from the option letter.
|
|
|
|
.LP
|
|
|
|
The following options shall be supported. In the following option
|
|
|
|
descriptions, \fIcolumn\fP, \fIlines\fP, \fIoffset\fP,
|
|
|
|
\fIpage\fP, and \fIwidth\fP are positive decimal integers; \fIgap\fP
|
|
|
|
is a non-negative decimal integer.
|
|
|
|
.TP 7
|
|
|
|
\fB+\fP\fIpage\fP
|
|
|
|
Begin output at page number \fIpage\fP of the formatted input.
|
|
|
|
.TP 7
|
|
|
|
\fB-\fP\fIcolumn\fP
|
|
|
|
Produce multi-column output that is arranged in \fIcolumn\fP columns
|
|
|
|
(the default shall be 1) and is written down each column
|
|
|
|
in the order in which the text is received from the input file. This
|
|
|
|
option should not be used with \fB-m\fP. The options
|
|
|
|
\fB-e\fP and \fB-i\fP shall be assumed for multiple text-column output.
|
|
|
|
Whether or not text columns are produced with identical
|
|
|
|
vertical lengths is unspecified, but a text column shall never exceed
|
|
|
|
the length of the page (see the \fB-l\fP option). When used
|
|
|
|
with \fB-t\fP, use the minimum number of lines to write the output.
|
|
|
|
.TP 7
|
|
|
|
\fB-a\fP
|
|
|
|
Modify the effect of the \fB-\fP \fIcolumn\fP option so that the columns
|
|
|
|
are filled across the page in a round-robin order
|
|
|
|
(for example, when \fIcolumn\fP is 2, the first input line heads column
|
|
|
|
1, the second heads column 2, the third is the second line
|
|
|
|
in column 1, and so on).
|
|
|
|
.TP 7
|
|
|
|
\fB-d\fP
|
|
|
|
Produce output that is double-spaced; append an extra <newline> following
|
|
|
|
every <newline> found in the input.
|
|
|
|
.TP 7
|
|
|
|
\fB-e[\fP\fIchar\fP\fB][\fP\fIgap\fP\fB]\fP
|
|
|
|
.sp
|
|
|
|
Expand each input <tab> to the next greater column position specified
|
|
|
|
by the formula \fIn\fP* \fIgap\fP+1, where \fIn\fP
|
|
|
|
is an integer > 0. If \fIgap\fP is zero or is omitted, it shall default
|
|
|
|
to 8. All <tab>s in the input shall be expanded
|
|
|
|
into the appropriate number of <space>s. If any non-digit character,
|
|
|
|
\fIchar\fP, is specified, it shall be used as the input
|
|
|
|
<tab>.
|
|
|
|
.TP 7
|
|
|
|
\fB-f\fP
|
|
|
|
Use a <form-feed> for new pages, instead of the default behavior that
|
|
|
|
uses a sequence of <newline>s. Pause before
|
|
|
|
beginning the first page if the standard output is associated with
|
|
|
|
a terminal.
|
|
|
|
.TP 7
|
|
|
|
\fB-F\fP
|
|
|
|
Use a <form-feed> for new pages, instead of the default behavior that
|
|
|
|
uses a sequence of <newline>s.
|
|
|
|
.TP 7
|
|
|
|
\fB-h\ \fP \fIheader\fP
|
|
|
|
Use the string \fIheader\fP to replace the contents of the \fIfile\fP
|
|
|
|
operand in the page header.
|
|
|
|
.TP 7
|
|
|
|
\fB-i[\fP\fIchar\fP\fB][\fP\fIgap\fP\fB]\fP
|
|
|
|
In output, replace multiple <space>s with <tab>s wherever two or more
|
|
|
|
adjacent <space>s reach column
|
|
|
|
positions \fIgap\fP+1, 2* \fIgap\fP+1, 3* \fIgap\fP+1, and so on.
|
|
|
|
If \fIgap\fP is zero or is omitted, default tab settings at
|
|
|
|
every eighth column position shall be assumed. If any non-digit character,
|
|
|
|
\fIchar\fP, is specified, it shall be used as the
|
|
|
|
output <tab>.
|
|
|
|
.TP 7
|
|
|
|
\fB-l\ \fP \fIlines\fP
|
|
|
|
Override the 66-line default and reset the page length to \fIlines\fP.
|
|
|
|
If \fIlines\fP is not greater than the sum of both the
|
|
|
|
header and trailer depths (in lines), the \fIpr\fP utility shall suppress
|
|
|
|
both the header and trailer, as if the \fB-t\fP option
|
|
|
|
were in effect.
|
|
|
|
.TP 7
|
|
|
|
\fB-m\fP
|
|
|
|
Merge files. Standard output shall be formatted so the \fIpr\fP utility
|
|
|
|
writes one line from each file specified by a
|
|
|
|
\fIfile\fP operand, side by side into text columns of equal fixed
|
|
|
|
widths, in terms of the number of column positions.
|
|
|
|
Implementations shall support merging of at least nine \fIfile\fP
|
|
|
|
operands.
|
|
|
|
.TP 7
|
|
|
|
\fB-n[\fP\fIchar\fP\fB][\fP\fIwidth\fP\fB]\fP
|
|
|
|
.sp
|
|
|
|
Provide \fIwidth\fP-digit line numbering (default for \fIwidth\fP
|
|
|
|
shall be 5). The number shall occupy the first \fIwidth\fP
|
|
|
|
column positions of each text column of default output or each line
|
|
|
|
of \fB-m\fP output. If \fIchar\fP (any non-digit character)
|
|
|
|
is given, it shall be appended to the line number to separate it from
|
|
|
|
whatever follows (default for \fIchar\fP is a
|
|
|
|
<tab>).
|
|
|
|
.TP 7
|
|
|
|
\fB-o\ \fP \fIoffset\fP
|
|
|
|
Each line of output shall be preceded by offset <space>s. If the \fB-o\fP
|
|
|
|
option is not specified, the default offset
|
|
|
|
shall be zero. The space taken is in addition to the output line width
|
|
|
|
(see the \fB-w\fP option below).
|
|
|
|
.TP 7
|
|
|
|
\fB-p\fP
|
|
|
|
Pause before beginning each page if the standard output is directed
|
|
|
|
to a terminal ( \fIpr\fP shall write an <alert> to
|
|
|
|
standard error and wait for a <carriage-return> to be read on \fB/dev/tty\fP).
|
|
|
|
.TP 7
|
|
|
|
\fB-r\fP
|
|
|
|
Write no diagnostic reports on failure to open files.
|
|
|
|
.TP 7
|
|
|
|
\fB-s[\fP\fIchar\fP\fB]\fP
|
|
|
|
Separate text columns by the single character \fIchar\fP instead of
|
|
|
|
by the appropriate number of <space>s (default for
|
|
|
|
\fIchar\fP shall be <tab>).
|
|
|
|
.TP 7
|
|
|
|
\fB-t\fP
|
|
|
|
Write neither the five-line identifying header nor the five-line trailer
|
|
|
|
usually supplied for each page. Quit writing after the
|
|
|
|
last line of each file without spacing to the end of the page.
|
|
|
|
.TP 7
|
|
|
|
\fB-w\ \fP \fIwidth\fP
|
|
|
|
Set the width of the line to \fIwidth\fP column positions for multiple
|
|
|
|
text-column output only. If the \fB-w\fP option is not
|
|
|
|
specified and the \fB-s\fP option is not specified, the default width
|
|
|
|
shall be 72. If the \fB-w\fP option is not specified and
|
|
|
|
the \fB-s\fP option is specified, the default width shall be 512.
|
|
|
|
.LP
|
|
|
|
For single column output, input lines shall not be truncated.
|
|
|
|
.sp
|
|
|
|
.SH OPERANDS
|
|
|
|
.LP
|
|
|
|
The following operand shall be supported:
|
|
|
|
.TP 7
|
|
|
|
\fIfile\fP
|
|
|
|
A pathname of a file to be written. If no \fIfile\fP operands are
|
2007-09-20 06:36:16 +00:00
|
|
|
specified, or if a \fIfile\fP operand is \fB'-'\fP, the
|
2004-11-03 13:51:07 +00:00
|
|
|
standard input shall be used.
|
|
|
|
.sp
|
|
|
|
.SH STDIN
|
|
|
|
.LP
|
|
|
|
The standard input shall be used only if no \fIfile\fP operands are
|
|
|
|
specified, or if a \fIfile\fP operand is \fB'-'\fP .
|
|
|
|
See the INPUT FILES section.
|
|
|
|
.SH INPUT FILES
|
|
|
|
.LP
|
|
|
|
The input files shall be text files.
|
|
|
|
.LP
|
|
|
|
The file \fB/dev/tty\fP shall be used to read responses required by
|
|
|
|
the \fB-p\fP option.
|
|
|
|
.SH ENVIRONMENT VARIABLES
|
|
|
|
.LP
|
|
|
|
The following environment variables shall affect the execution of
|
|
|
|
\fIpr\fP:
|
|
|
|
.TP 7
|
|
|
|
\fILANG\fP
|
|
|
|
Provide a default value for the internationalization variables that
|
|
|
|
are unset or null. (See the Base Definitions volume of
|
|
|
|
IEEE\ Std\ 1003.1-2001, Section 8.2, Internationalization Variables
|
|
|
|
for
|
|
|
|
the precedence of internationalization variables used to determine
|
|
|
|
the values of locale categories.)
|
|
|
|
.TP 7
|
|
|
|
\fILC_ALL\fP
|
|
|
|
If set to a non-empty string value, override the values of all the
|
|
|
|
other internationalization variables.
|
|
|
|
.TP 7
|
|
|
|
\fILC_CTYPE\fP
|
|
|
|
Determine the locale for the interpretation of sequences of bytes
|
|
|
|
of text data as characters (for example, single-byte as
|
|
|
|
opposed to multi-byte characters in arguments and input files) and
|
|
|
|
which characters are defined as printable (character class
|
|
|
|
\fBprint\fP). Non-printable characters are still written to standard
|
|
|
|
output, but are not counted for the purpose for column-width
|
|
|
|
and line-length calculations.
|
|
|
|
.TP 7
|
|
|
|
\fILC_MESSAGES\fP
|
|
|
|
Determine the locale that should be used to affect the format and
|
|
|
|
contents of diagnostic messages written to standard
|
|
|
|
error.
|
|
|
|
.TP 7
|
|
|
|
\fILC_TIME\fP
|
|
|
|
Determine the format of the date and time for use in writing header
|
|
|
|
lines.
|
|
|
|
.TP 7
|
|
|
|
\fINLSPATH\fP
|
|
|
|
Determine the location of message catalogs for the processing of \fILC_MESSAGES
|
|
|
|
\&.\fP
|
|
|
|
.TP 7
|
|
|
|
\fITZ\fP
|
|
|
|
Determine the timezone used to calculate date and time strings written
|
|
|
|
in header lines. If \fITZ\fP is unset or null, an
|
|
|
|
unspecified default timezone shall be used.
|
|
|
|
.sp
|
|
|
|
.SH ASYNCHRONOUS EVENTS
|
|
|
|
.LP
|
|
|
|
If \fIpr\fP receives an interrupt while writing to a terminal, it
|
|
|
|
shall flush all accumulated error messages to the screen
|
|
|
|
before terminating.
|
|
|
|
.SH STDOUT
|
|
|
|
.LP
|
|
|
|
The \fIpr\fP utility output shall be a paginated version of the original
|
|
|
|
file (or files). This pagination shall be accomplished
|
|
|
|
using either <form-feed>s or a sequence of <newline>s, as controlled
|
2007-11-18 06:52:48 +00:00
|
|
|
by the \fB-F\fP or \fB-f\fP
|
2004-11-03 13:51:07 +00:00
|
|
|
option. Page headers shall be generated unless the \fB-t\fP option
|
|
|
|
is specified. The page headers shall be of the form:
|
|
|
|
.sp
|
|
|
|
.RS
|
|
|
|
.nf
|
|
|
|
|
|
|
|
\fB"\\n\\n%s %s Page %d\\n\\n\\n", <\fP\fIoutput of date\fP\fB>, <\fP\fIfile\fP\fB>, <\fP\fIpage number\fP\fB>
|
|
|
|
\fP
|
|
|
|
.fi
|
|
|
|
.RE
|
|
|
|
.LP
|
|
|
|
In the POSIX locale, the <\fIoutput\ of\ date\fP> field, representing
|
|
|
|
the date and time of last modification of
|
|
|
|
the input file (or the current date and time if the input file is
|
|
|
|
standard input), shall be equivalent to the output of the
|
|
|
|
following command as it would appear if executed at the given time:
|
|
|
|
.sp
|
|
|
|
.RS
|
|
|
|
.nf
|
|
|
|
|
|
|
|
\fBdate "+%b %e %H:%M %Y"
|
|
|
|
\fP
|
|
|
|
.fi
|
|
|
|
.RE
|
|
|
|
.LP
|
|
|
|
without the trailing <newline>, if the page being written is from
|
|
|
|
standard input. If the page being written is not from
|
|
|
|
standard input, in the POSIX locale, the same format shall be used,
|
|
|
|
but the time used shall be the modification time of the file
|
|
|
|
corresponding to \fIfile\fP instead of the current time. When the
|
|
|
|
\fILC_TIME\fP locale category is not set to the POSIX locale, a
|
|
|
|
different format and order of presentation of this field may be used.
|
|
|
|
.LP
|
|
|
|
If the standard input is used instead of a \fIfile\fP operand, the
|
|
|
|
<\fIfile\fP> field shall be replaced by a null
|
|
|
|
string.
|
|
|
|
.LP
|
|
|
|
If the \fB-h\fP option is specified, the <\fIfile\fP> field shall
|
|
|
|
be replaced by the \fIheader\fP argument.
|
|
|
|
.SH STDERR
|
|
|
|
.LP
|
|
|
|
The standard error shall be used for diagnostic messages and for alerting
|
|
|
|
the terminal when \fB-p\fP is specified.
|
|
|
|
.SH OUTPUT FILES
|
|
|
|
.LP
|
|
|
|
None.
|
|
|
|
.SH EXTENDED DESCRIPTION
|
|
|
|
.LP
|
|
|
|
None.
|
|
|
|
.SH EXIT STATUS
|
|
|
|
.LP
|
|
|
|
The following exit values shall be returned:
|
|
|
|
.TP 7
|
|
|
|
\ 0
|
|
|
|
Successful completion.
|
|
|
|
.TP 7
|
|
|
|
>0
|
|
|
|
An error occurred.
|
|
|
|
.sp
|
|
|
|
.SH CONSEQUENCES OF ERRORS
|
|
|
|
.LP
|
|
|
|
Default.
|
|
|
|
.LP
|
|
|
|
\fIThe following sections are informative.\fP
|
|
|
|
.SH APPLICATION USAGE
|
|
|
|
.LP
|
|
|
|
None.
|
|
|
|
.SH EXAMPLES
|
|
|
|
.IP " 1." 4
|
|
|
|
Print a numbered list of all files in the current directory:
|
|
|
|
.sp
|
|
|
|
.RS
|
|
|
|
.nf
|
|
|
|
|
|
|
|
\fBls -a | pr -n -h "Files in $(pwd)."
|
|
|
|
\fP
|
|
|
|
.fi
|
|
|
|
.RE
|
|
|
|
.LP
|
|
|
|
.IP " 2." 4
|
|
|
|
Print \fBfile1\fP and \fBfile2\fP as a double-spaced, three-column
|
|
|
|
listing headed by "file list'':
|
|
|
|
.sp
|
|
|
|
.RS
|
|
|
|
.nf
|
|
|
|
|
|
|
|
\fBpr -3d -h "file list" file1 file2
|
|
|
|
\fP
|
|
|
|
.fi
|
|
|
|
.RE
|
|
|
|
.LP
|
|
|
|
.IP " 3." 4
|
|
|
|
Write \fBfile1\fP on \fBfile2\fP, expanding tabs to columns 10, 19,
|
|
|
|
28, ...:
|
|
|
|
.sp
|
|
|
|
.RS
|
|
|
|
.nf
|
|
|
|
|
|
|
|
\fBpr -e9 -t <file1 >file2
|
|
|
|
\fP
|
|
|
|
.fi
|
|
|
|
.RE
|
|
|
|
.LP
|
|
|
|
.SH RATIONALE
|
|
|
|
.LP
|
|
|
|
This utility is one of those that does not follow the Utility Syntax
|
|
|
|
Guidelines because of its historical origins. The standard
|
|
|
|
developers could have added new options that obeyed the guidelines
|
|
|
|
(and marked the old options obsolescent) or devised an entirely
|
|
|
|
new utility; there are examples of both actions in this volume of
|
|
|
|
IEEE\ Std\ 1003.1-2001. Because of its widespread use by
|
|
|
|
historical applications, the standard developers decided to exempt
|
|
|
|
this version of \fIpr\fP from many of the guidelines.
|
|
|
|
.LP
|
|
|
|
Implementations are required to accept option-arguments to the \fB-h\fP,
|
|
|
|
\fB-l\fP, \fB-o\fP, and \fB-w\fP options whether
|
|
|
|
presented as part of the same argument or as a separate argument to
|
|
|
|
\fIpr\fP, as suggested by the Utility Syntax Guidelines. The
|
|
|
|
\fB-n\fP and \fB-s\fP options, however, are specified as in historical
|
|
|
|
practice because they are frequently specified without
|
|
|
|
their optional arguments. If a <blank> were allowed before the option-argument
|
|
|
|
in these cases, a \fIfile\fP operand could
|
|
|
|
mistakenly be interpreted as an option-argument in historical applications.
|
|
|
|
.LP
|
|
|
|
The text about the minimum number of lines in multi-column output
|
|
|
|
was included to ensure that a best effort is made in balancing
|
|
|
|
the length of the columns. There are known historical implementations
|
|
|
|
in which, for example, 60-line files are listed by \fIpr\fP
|
|
|
|
-2 as one column of 56 lines and a second of 4. Although this is not
|
|
|
|
a problem when a full page with headers and trailers is
|
|
|
|
produced, it would be relatively useless when used with \fB-t\fP.
|
|
|
|
.LP
|
|
|
|
Historical implementations of the \fIpr\fP utility have differed in
|
|
|
|
the action taken for the \fB-f\fP option. BSD uses it as
|
|
|
|
described here for the \fB-F\fP option; System V uses it to change
|
|
|
|
trailing <newline>s on each page to a <form-feed>
|
|
|
|
and, if standard output is a TTY device, sends an <alert> to standard
|
|
|
|
error and reads a line from \fB/dev/tty\fP before the
|
|
|
|
first page. There were strong arguments from both sides of this issue
|
|
|
|
concerning historical practice and as a result the \fB-F\fP
|
|
|
|
option was added. XSI-conformant systems support the System V historical
|
|
|
|
actions for the \fB-f\fP option.
|
|
|
|
.LP
|
|
|
|
The <\fIoutput\ of\ date\fP> field in the \fB-l\fP format is specified
|
|
|
|
only for the POSIX locale. As noted, the
|
|
|
|
format can be different in other locales. No mechanism for defining
|
|
|
|
this is present in this volume of
|
|
|
|
IEEE\ Std\ 1003.1-2001, as the appropriate vehicle is a message catalog;
|
|
|
|
that is, the format should be specified as a
|
|
|
|
"message".
|
|
|
|
.SH FUTURE DIRECTIONS
|
|
|
|
.LP
|
|
|
|
None.
|
|
|
|
.SH SEE ALSO
|
|
|
|
.LP
|
2007-09-20 06:36:16 +00:00
|
|
|
\fIexpand\fP, \fIlp\fP
|
2004-11-03 13:51:07 +00:00
|
|
|
.SH COPYRIGHT
|
|
|
|
Portions of this text are reprinted and reproduced in electronic form
|
|
|
|
from IEEE Std 1003.1, 2003 Edition, Standard for Information Technology
|
|
|
|
-- Portable Operating System Interface (POSIX), The Open Group Base
|
|
|
|
Specifications Issue 6, Copyright (C) 2001-2003 by the Institute of
|
|
|
|
Electrical and Electronics Engineers, Inc and The Open Group. In the
|
|
|
|
event of any discrepancy between this version and the original IEEE and
|
|
|
|
The Open Group Standard, the original IEEE and The Open Group Standard
|
|
|
|
is the referee document. The original Standard can be obtained online at
|
|
|
|
http://www.opengroup.org/unix/online.html .
|