PR(1)
๐ PR(1) โ the "make ur text cute for printing" page ๐
hey bestie!! welcome to pr, a lil User Commands icon in the GNU coreutils fam. it's giving "typesetting but make it low effort." let's get into it ๐ซถ
โจ NAME โจ
pr โ convert text files for printing ๐จ๏ธโจ
๐ธ SYNOPSIS ๐ธ
pr [OPTION]... [FILE]...
๐ฆ DESCRIPTION ๐ฆ
Paginate or columnate</purl> FILE(s) for printing. basically: chop ur text into pages, or squish it into columns, so it looks cute on paper. no cap.
If there's no FILE, or FILE is literally just -, it reads from standard input. so go ahead, pipe it, she'll handle it ๐
๐ Mandatory arguments to long options are mandatory for short options too. (translation: if a long option needs a value, the short one needs it too. not optional. periodt.)
๐ OPTIONS ๐
+FIRST_PAGE[:LAST_PAGE],--pages=FIRST_PAGE[:LAST_PAGE]โ begin [stop] printing with pageFIRST_[LAST_]PAGE. so u can start atFIRST_PAGE, or start there AND dip out atLAST_PAGE. yes the brackets are doing the "optional" thing, she's flexible ๐โ๏ธ-COLS,--columns=COLSโ outputCOLScolumns and print columns down, unless-ais used. also it balances the number of lines in the columns on each page. aesthetic AND fair. we love a balanced queen ๐-a,--acrossโ print columns across rather than down. bestie this is meant to be used together with-COLS, don't run it solo, she gets lonely ๐ญ-c,--show-control-charsโ use hat notation (^G) and octal backslash notation. so the invisible chaos gremlin characters become visible ๐-d,--double-spaceโ double space the output. breathing room. self care ๐-D,--date-format=FORMATโ useFORMATfor the header date. customize ur lil timestamp, main character energy fr fr-e[CHAR[WIDTH]],--expand-tabs[=CHAR[WIDTH]]โ expand inputCHARs (TABs) to tabWIDTH(8). default width is8, iconic โจ-F,-f,--form-feedโ use form feeds instead of newlines to separate pages (by a 3-line page header with-For a 5-line header and trailer without-F). yes-Fand-fare both here, they're twins, they're a package deal ๐ฏ-h,--header=HEADERโ use a centeredHEADERinstead of the filename in the page header.-h ""prints a blank line. don't use-h""โ like genuinely, don't, that's a trap ๐-i[CHAR[WIDTH]],--output-tabs[=CHAR[WIDTH]]โ replace spaces withCHARs (TABs) to tabWIDTH(8). the reverse of-e, she's giving "put the tabs back" ๐ฆ-J,--join-linesโ merge full lines, turns off-Wline truncation, no column alignment,--sep-string[=STRING]sets separators. a whole vibe shift for the separators ngl-l,--length=PAGE_LENGTHโ set the page length toPAGE_LENGTH(66) lines (default number of lines of text56, and with-F63). implies-tifPAGE_LENGTH <= 10๐-m,--mergeโ print all files in parallel, one in each column, truncate lines, but join lines of full length with-J. multiprocessing but make it paper ๐ซถ-n[SEP[DIGITS]],--number-lines[=SEP[DIGITS]]โ number lines, useDIGITS(5) digits, thenSEP(TAB), default counting starts with 1st line of input file. cute lil line numbers, so organized โจ-N,--first-line-number=NUMBERโ start counting withNUMBERat the 1st line of first page printed (see+FIRST_PAGE). so u can lie about where u started, no judgement ๐-o,--indent=MARGINโ offset each line withMARGIN(zero) spaces, does not affect-wor-W, andMARGINwill be added toPAGE_WIDTH. she's got boundaries (literally) ๐-r,--no-file-warningsโ omit warning when a file cannot be opened. sometimes u just don't wanna know ๐-s[CHAR],--separator[=CHAR]โ separate columns by a single character. default forCHARis the<TAB>character without-wand 'no char' with-w.-s[CHAR]turns off line truncation of all 3 column options (-COLS|-a -COLS|-m) except-wis set. read that twice bestie, it's a whole condition tree ๐ณ-S[STRING],--sep-string[=STRING]โ separate columns bySTRING. without-S: default separator<TAB>with-Jand<space>otherwise (same as-S" "), no effect on column options. so many separator options, pick ur fighter โ๏ธ-t,--omit-headerโ omit page headers and trailers; implied ifPAGE_LENGTH <= 10. she's lowkey automatic ๐-T,--omit-paginationโ omit page headers and trailers, eliminate any pagination by form feeds set in input files. bye bye structure ๐ฆ-v,--show-nonprintingโ use octal backslash notation. the sneaky nonprinting chars get exposed, no cap ๐ฅ-w,--width=PAGE_WIDTHโ set page width toPAGE_WIDTH(72) characters for multiple text-column output only,-s[char]turns off (72). only kicks in for the multi-column situation, she's specific ๐-W,--page-width=PAGE_WIDTHโ set page width toPAGE_WIDTH(72) characters always, truncate lines, except-Joption is set, no interference with-Sor-s. the bossy sibling of-w, she always shows up ๐--helpโ display this help and exit. ur lil emergency exit ๐ช--versionโ output version information and exit. receipts, always ๐งพ
๐ AUTHOR ๐
Written by Pete TerMaat and Roland Huebner. absolute legends, we stan ๐
๐ญ REPORTING BUGS ๐ญ
found something broken? don't suffer in silence bestie, tell the devs:
- Report bugs to: <bug-coreutils@gnu.org>.
- Report any translation bugs to: <https://translationproject.org/team/>.
- GNU coreutils home page: <https://www.gnu.org/software/coreutils/>
- General help using GNU software: <https://www.gnu.org/gethelp/>
โญ COPYRIGHT โญ
Copyright ยฉ 2026 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. fr fr, zero warranty, don't come for her ๐จ
๐ SEE ALSO ๐
- Full documentation <https://www.gnu.org/software/coreutils/pr>
- or available locally via:
info '(coreutils) pr invocation'
and that's the whole page, bestie!! this lil manual is straight outta GNU coreutils 9.12, dated September 2026 โ yeah she's from the future, she's built different ๐ โจ go forth and paginate ๐ซถ๐
๐ฆ where this page comes from
- arch rolling: coreutils 9.12-2 ยท GPL-3.0-or-later AND GFDL-1.3-or-later
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms