pr - Writes a file to standard output
pr [-adfFmprt] [-e] [character] [number] [-h header] [-i] [character] [gap]
[-l lines] [-n] [character] [width] | [-x] [character] [number] [-o offset]
[-s] [character] [-w width] [-column] [+page] [file...]
The pr command writes file to standard output. If you do not specify file
or if file is -, pr reads standard input.
Interfaces documented on this reference page conform to industry standards
Refer to the standards(5) reference page for more information about indus-
try standards and associated tags.
-a Displays multicolumn output across the page. (This option is meaning-
ful only in combination with the -column option. It modifies -column
so that columns are filled across the page in a round robin order.)
-d Doublespaces the output.
Expands tabs to byte positions number+1, 2*number+1, 3*number+1, and so
on. The default value of number is 8. Tab characters in the input
expand to the appropriate number of spaces to line up with the next tab
setting. If you specify character (any character other than a digit)
that character becomes the input tab character. The default value of
character is the ASCII tab character.
-f Uses a formfeed character to advance to a new page. (Otherwise, pr
issues a sequence of newline characters.) Pauses before beginning the
first page if the standard output is a terminal.
-F Uses a formfeed character to advance to a new page. (Otherwise, pr
issues a sequence of newline characters.) Does not pause before begin-
ning the first page if the standard output is a terminal.
Displays header instead of the file name in the page header.
Replaces multiple space characters with tab characters wherever two or
more space characters reach positions gap+1, 2*gap+1, 3*gap+1, and so
on. The default value of gap is 8. If you specify character (any
character other than a digit), that character becomes the output tab
character. (The default value of character is the ASCII tab charac-
Sets the length of a page to lines lines (the default is 66). If lines
is not greater than the sum of the header and trailer, pr suppresses
both header and trailer, as if -t were in effect.
-m Combines and writes all files at the same time, with each file in a
separate column. (This overrides the -column and -a options).
Provides width-digit line numbering (the default value of width is 5).
The number occupies the first width positions of each column of normal
output (or each line of -m output). If you specify character (any
character, other than a digit), that character is added to the line
number to separate it from whatever follows. (The default value of
character is an ASCII tab character.)
Indents each line of output by offset byte positions (the default is
0). This is in addition to output width (see -w).
-p Pauses before beginning each page if the output is directed to a termi-
nal. (pr sounds the bell at the terminal and waits for you to press
-r Does not display diagnostic messages if the system cannot open files.
Separates columns by the single character instead of by the appropriate
number of spaces (the default for character is an ASCII tab character).
-t Does not display the 5-line identifying header and the 5-line footer.
Stops after the last line of each file without spacing to the end of
[Tru64 UNIX] Same as -n.
Sets the width of a line to width byte positions. If neither -w or -s
are specified, the default is 72. If only -s is specified, the default
is 512. Single column output is not truncated.
Produces the specified number of columns (the default value is 1). The
-e and -i options are assumed for multicolumn output. A text column
never exceeds the width of the page (see -l).
Begins the display at the specified page number (the default value is
When used with arguments, the -e, -i, -n, -s, and -x options do not
permit white space between the option and its associated argument,
or between multiple arguments.
The path name of a file to written. If no file is specified, or -
(hyphen) is specified, standard input is used.
A heading that contains the page number, date, time, and the name of the
file separates the output into pages.
Unless specified, columns are of equal width and separated by at least one
space. Lines that are too long for the page width are shortened. If the
standard output is a terminal, pr does not display any error messages until
it has ended. By default, the input is separated into 66-line pages,
including the 5-line header and 5-line footer.
If standard output is a terminal, diagnostic (error) messages produced dur-
ing the operation of pr will be deferred and printed after pr has completed
The following exit values are returned:
0 All files have been successfully written.
>>0 An error occurred.
1. To print a file with headings and page numbers on the printer, enter:
pr prog.c | lpr
This inserts a page break in prog.c, starts each page with a heading,
and sends the output to the print command. The heading consists of
the date the file was last modified, the file name, and the page
2. To specify a title, enter:
pr -h "MAIN PROGRAM" prog.c | lpr
This prints prog.c with the title MAIN PROGRAM in place of the file
name. The modification date and page number are still printed.
3. To print a file in multiple columns, enter:
pr -3 word.lst | lpr
This prints the file word.lst in three vertical columns.
4. To print several files side-by-side on the paper, enter:
pr -m -h "Members, Visitors" member.lst visitor.lst | lpr
This prints the files member.lst and visitor.lst side-by-side with the
title Members, Visitors.
5. To modify a file for later use, enter:
pr -t -e prog.c >> prog.notab.c
This replaces tab characters in prog.c with spaces and puts the result
in prog.notab.c. Tab positions are at byte positions 9, 17, 25, 33,
and so on. The -e tells pr to replace the tab characters; the -t
suppresses the page headings.
The following environment variables affect the execution of pr:
Provides a default value for the internationalization variables that
are unset or null. If LANG is unset or null, the corresponding value
from the default locale is used. If any of the internationalization
variables contain an invalid setting, the utility behaves as if none of
the variables had been defined.
If set to a non-empty string value, overrides the values of all the
other internationalization variables.
Determines 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).
Determines the locale for the format and contents of diagnostic mes-
sages written to standard error.
Determines the format of the date and time used in writing header
Determines the location of message catalogues for the processing of
Your terminal, used when the -p option is specified.
Commands: cat(1), expand(1), mesg(1)