# man > pr(1)

> **TLDR:** Paginate or columnate files for printing.
>
- Print multiple files with a default header and footer:
  `pr {{path/to/file1 path/to/file2 ...}}`
- Print with a custom centered header:
  `pr {{-h|--header}} "{{header}}" {{path/to/file1 path/to/file2 ...}}`
- Print with numbered lines and a custom date format:
  `pr {{-n|--number-lines}} {{-D|--date-format}} "{{format}}" {{path/to/file1 path/to/file2 ...}}`
- Print all files together, one in each column, without a header or footer:
  `pr {{-m|--merge}} {{-T|--omit-pagination}} {{path/to/file1 path/to/file2 ...}}`
- Print, beginning at page 2 up to page 5, with a given page length (including header and footer):
  `pr +2:5 {{-l|--length}} {{page_length}} {{path/to/file1 path/to/file2 ...}}`
- Print with an offset for each line and a truncating custom page width:
  `pr {{-o|--indent}} {{offset}} {{-W|--page_width}} {{width}} {{path/to/file1 path/to/file2 ...}}`

*Source: tldr-pages*

---

[_PR_(1)](https://www.chedong.com/phpMan.php/man/PR/1/markdown)                                       User Commands                                      [_PR_(1)](https://www.chedong.com/phpMan.php/man/PR/1/markdown)

## NAME
       pr - convert text files for printing

## SYNOPSIS
       **pr **[_OPTION_]... [_FILE_]...

## DESCRIPTION
       Paginate or columnate FILE(s) for printing.

       With no FILE, or when FILE is -, read standard input.

       Mandatory arguments to long options are mandatory for short options too.

       +FIRST_PAGE[:LAST_PAGE], **--pages**=_FIRST_PAGE[_:LAST_PAGE]
              begin [stop] printing with page FIRST_[LAST_]PAGE

### -COLUMN --columns
              output  COLUMN  columns  and  print columns down, unless **-a **is used. Balance number of
              lines in the columns on each page

### -a --across
              print columns across rather than down, used together with **-COLUMN**

### -c --show-control-chars
              use hat notation (^G) and octal backslash notation

### -d --double-space
              double space the output

### -D --date-format
              use FORMAT for the header date

### -e[CHAR[WIDTH]] --expand-tabs
              expand input CHARs (TABs) to tab WIDTH (8)

### -F -f --form-feed
              use form feeds instead of newlines to separate pages (by a 3-line page header with  **-F**
              or a 5-line header and trailer without **-F**)

### -h --header
              use  a  centered HEADER instead of filename in page header, **-h **"" prints a blank line,
              don't use **-h**""

### -i[CHAR[WIDTH]] --output-tabs
              replace spaces with CHARs (TABs) to tab WIDTH (8)

### -J --join-lines
              merge  full  lines,   turns   off   **-W   **line   truncation,   no   column   alignment,
              **--sep-string**[=_STRING_] sets separators

### -l --length
              set the page length to PAGE_LENGTH (66) lines (default number of lines of text 56, and
              with **-F **63).  implies **-t **if PAGE_LENGTH <= 10

### -m --merge
              print  all  files  in  parallel, one in each column, truncate lines, but join lines of
              full length with **-J**

### -n[SEP[DIGITS]] --number-lines
              number lines, use DIGITS (5) digits, then SEP (TAB), default counting starts with  1st
              line of input file

### -N --first-line-number
              start counting with NUMBER at 1st line of first page printed (see +FIRST_PAGE)

### -o --indent
              offset  each  line  with  MARGIN (zero) spaces, do not affect **-w **or **-W**, MARGIN will be
              added to PAGE_WIDTH

### -r --no-file-warnings
              omit warning when a file cannot be opened

### -s[CHAR] --separator
              separate columns by a single character, default for CHAR is the <TAB> character  with‐
              out  **-w **and 'no char' with **-w**.  **-s[CHAR] **turns off line truncation of all 3 column op‐
              tions (**-COLUMN**|-a **-COLUMN**|-m) except **-w **is set

### -S[STRING] --sep-string
              separate columns by STRING, without **-S**: Default separator <TAB> with  **-J  **and  <space>
              otherwise (same as **-S**" "), no effect on column options

### -t --omit-header
              omit page headers and trailers; implied if PAGE_LENGTH <= 10

### -T --omit-pagination
              omit  page  headers  and trailers, eliminate any pagination by form feeds set in input
              files

### -v --show-nonprinting
              use octal backslash notation

### -w --width
              set page width to PAGE_WIDTH (72) characters for  multiple  text-column  output  only,
              **-s[char] **turns off (72)

### -W --page-width
              set  page width to PAGE_WIDTH (72) characters always, truncate lines, except **-J **option
              is set, no interference with **-S **or **-s**

       **--help **display this help and exit

### --version
              output version information and exit

## AUTHOR
       Written by Pete TerMaat and Roland Huebner.

## REPORTING BUGS
       GNU coreutils online help: <<https://www.gnu.org/software/coreutils/>>
       Report any translation bugs to <<https://translationproject.org/team/>>

## COPYRIGHT
       Copyright © 2023 Free Software Foundation, Inc.  License GPLv3+: GNU GPL version 3  or  later
       <<https://gnu.org/licenses/gpl.html>>.
       This  is free software: you are free to change and redistribute it.  There is NO WARRANTY, to
       the extent permitted by law.

## SEE ALSO
       Full documentation <<https://www.gnu.org/software/coreutils/pr>>
       or available locally via: info '(coreutils) pr invocation'

GNU coreutils 9.4                           January 2026                                       [_PR_(1)](https://www.chedong.com/phpMan.php/man/PR/1/markdown)
