|Previous||Table of Contents||Next|
The external pr command formats files for printing or displaying. It reads from the standard input or from a list of files and writes to the standard output. The input is reformatted according to specified options. The formatting is page and file oriented. Textual type formatting, as done by troff, is not performed by pg. The output can be reformatted to multiple columns, with or without headers and footers, indented, and double spaced, among various other formats.
Following is the general format of the pr command.
pr [ [ -col ] [ -wwid ] [ -a ] ] [ +p ] [ -dfprt ] [ -eck ] [ -hhdr ] \ [ -ick ] [ -llen ] [ -nck ] [ -ooffset ] [ -sc ] [ -F ] [ filelist ] \ [ - ] pr [ [ -m ] [ -wwid ] ] [ +p ] [ -dfprt ] [ -eck ] [ -hhdr ] \ [ -ick ] [ -llen ] [ -nck ] [ -ooffset ] [ -sc ] [ -F ] [ file_list ] \ [ - ]
The first format is used to specify the number of columns (-col) to display on the output. The second format displays the output based on the number of input files. If you have three input files, the output is displayed in three columns. The -col option and the -m option are mutually exclusive; that is, you can only use one or the other on the same command line.
|pr [ -col ] [ +p ] [ -f ] [ -hhdr ] [ -llen ] [ -m ] [ -sc ]|
|[ -t ] \ [ -wwid ] [ file_list ]|
|The -col option does not appear to work on some BSD type systems.|
The following list describes the options and their arguments that may be used to control how pr functions.
|+p||Begins displaying text at page p. The p must be an integer.
The page numbers are based on the -l and -h options. The default number for
p is 1. For example,
pr +5 infile
skips the first 226 (4 pages * 56 lines per page) lines of input and displays the fifth page of input.
|-col||Displays the output in col columns. The -e and -i options are
assumed. This option cannot be used in conjunction with the -m option. The
input is displayed down the first column of output then down the second column.
This process is repeated for each page of output. The column widths vary
depending on the page width and number of columns requested. By default, input
lines that are too long to be displayed in the column are truncated. For
pr -4 infile
displays the data in 4 columns; each page has a header.
|-a||Displays multicolumn output (-col option) across the columns instead of down the columns. The first line of input goes in column one, the second line goes in column two, and so on. This option can only be used with the -col option.|
|-d||Double space the output. Blank lines at the top of the page are dropped.|
|-eck||Expands input character c to k positions in the output. The
default for c is a tab. The c must be a nondigit. The default
number for k is 8. Therefore, the tab positions are set to 1, 9, 17, and
so on. You can omit either the c or the k or both. If k is
given, the output tab positions are set to k + 1, 2 * k + 1, and
so on. For example, if you specify
pr -e:20 infile
each : (colon) found in the input line is expanded to the next tab position that is a multiple of 20. The character following the first colon is placed in column 21 if possible.
|-f||Use form feed character (Ctrl-L) for new pages. Normally a sequence of new-lines are used to eject a page. A pause occurs before the first page is printed. You MUST press Return to have pr continue.|
|-F||Fold the input lines to fit the current line width. If used with the -a or -m options for multicolumn output lines will be folded to fit the current columns width.|
|-h hdr||Use hdr as the text for the header instead of the filename. The -h
option is ignored if the -t option is specified or the -l option is specified
with a length of 10 or less. The -h must be followed by a space. The
hdr may be enclosed in quotes if it contains blanks. For example,
pr -h "infile - Please deliver to mylogin" infile
places the message "infile-Please deliver to mylogin" on the top of each page.
|-ick||Tabs replace spaces in the output where possible. The default for c is a tab. The c must be a nondigit. The default for k is 8; therefore, tab positions are set at 1, 9, 17, and so on. If k is given, then tab positions are set at k + 1, 2 * k + 1, and so on.|
|-llen||Set the page length to len lines. The default is 66 lines. A len of zero (0) is reset to 66. If len is less than 10 then the -t option is assumed and the header and trailers are suppressed. If the headers and trailers are not suppressed, the actual lines of text displayed per page is len - 10. The header and trailer require 10 lines per page. Thus a normal page only displays 56 lines of text.|
|-m||Merges and displays all input files simultaneously in multiple columns. Each input file is displayed in its own column. The most files you can specify is eight. If lines are longer than the width of the column, they are truncated. The -m option cannot be used with the -col or -a options.|
|-nck||Generates numbered output lines. The line numbers are formatted in k spaces. The default for k is five. If c is specified, then the line number is separated from the text by character c.|
|-ooffset||Offset (indent) each line by offset characters. The default of offset is zero (0).|
|-p||Pauses before displaying the next page of output. The output must be to your terminal screen. Your terminal's bell is sounded and pr waits for you to press Return before displaying the next page.|
|-r||No diagnostic warning messages are displayed if a problem occurs while pr is attempting to open a file.|
|-sc||Separate columns of output with the character c instead of the appropriate number of spaces used for normal formatting. The default character for c is the tab. Multicolumn output is not truncated unless the -w option is specified.|
|-t||Suppress the headers and trailers. The normal header has two blank lines: an information line followed by two more blank lines. The information line contains the Month, Day, Time, Year, Filename, and Page number. The trailer consists of five blank lines. The -t option causes the -h option to be ignored.|
|-wwid||Sets the width of the output line to wid characters. The normal width is 72 characters. This option only affects multicolumn output (-col and -m options).|
|If no options are specified, a header and footer are added to each page of
output. The header consist of five lines, with the third line containing the
Month, Day, Time, Year, Filename, and Page number. The footer is five blank
lines. For example,
Mar 16 06:57 1989 infile Page 1
|The supported options under BSD function the same as the corresponding SV options.|
The following list describes the arguments that may be passed to the pr command.
|filelist||One or more files to be formatted by pr|
|file1||The first file used for the -m option. The -m option requires two input streams (files).|
|file2||The second file used for the -m option|
You can use pr to format files to your terminal screen or to a printer using the lp (lpr-BSD) command. If you have a printer connected to the auxiliary port of your terminal, the -f option comes in handy. You can enter your pr -f infile command and wait for pr to beep your terminal. Then you can align your printer paper and activate the printer port on the terminal. Press Return to have pr continue displaying your file.
Reformatting the data is useful. You may have a file that has tabs in it. Because the tabs are set at every 8 spaces, the text extends off the end of your printer paper. To resolve the problem you can use pr. For example,
pr -e4 infile
reduces each tab to four spaces instead of eight. This way you can squeeze more tab filled text on a narrower piece of paper or screen.
You will find it helpful to use pr to send files to the system printer. By using pr you can generate formatted listings of your program source code or various other text files. For example,
pr -n -e4 mysrc.c | lp -dlaser
formats the mysrc.c file with line numbers and tabs reduced to four spaces. The output of pr is piped to the lp command with a destination of the laser printer.
DIAGNOSTICS AND BUGS
All diagnostic messages are displayed after all text has been displayed.
|The BSD version does not display errors when the output is to your terminal screen.|
Refer to the cat and pg commands described in modules 13 and 103.
The pr command reads from the standard input and writes to the standard output. It can also read from a list of files. The delay bell caused by the -f and -p options is only used when the output is directed to a /dev/tty* device. Therefore, if you pipe the output of pr to another command, the bells and pauses are suppressed.
You can use pr to format a file for printing on a printer or displaying on your terminal screen. It can also be used to reformat the data in a file. You may want the tab stops to be reset or replace spaces with tabs where possible. The most common use of pr is probably the default listing when you don't specify any options. This causes pr to generate an output listing of your file with a header at the top of each page and a page break.
In this activity you use the pr command to display a file using the default settings, then display the same file using columns and various other options. Begin at the shell prompt.
Now for the activity using the above files.
cj> pr users | uniq Mar 16 08:15 1989 users Page 1 Barbara David George Scott Tina
cj> pr -3 users Mar 16 08:16 1989 users Page 1 Barbara George Scott David Jill Tina
System V Only
cj> pr -3 -a users Mar 16 08:16 1989 users Page 1 Barbara David George Jill Scott Tina
cj> pr -m users mgmt Mar 16 08:16 1989 users Page 1 Barbara Andrew David Barbara George Kathy Jill Scott Scott Tina
|Previous||Table of Contents||Next|