1.\" Copyright (c) 1980, 1990, 1993 2.\" The Regents of the University of California. All rights reserved. 3.\" 4.\" Redistribution and use in source and binary forms, with or without 5.\" modification, are permitted provided that the following conditions 6.\" are met: 7.\" 1. Redistributions of source code must retain the above copyright 8.\" notice, this list of conditions and the following disclaimer. 9.\" 2. Redistributions in binary form must reproduce the above copyright 10.\" notice, this list of conditions and the following disclaimer in the 11.\" documentation and/or other materials provided with the distribution. 12.\" 3. Neither the name of the University nor the names of its contributors 13.\" may be used to endorse or promote products derived from this software 14.\" without specific prior written permission. 15.\" 16.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 17.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 18.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 19.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 20.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 21.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 22.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 23.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 24.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 25.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 26.\" SUCH DAMAGE. 27.\" 28.\" Modified by Gareth McCaughan to describe the new version of `fmt' 29.\" rather than the old one. 30.Dd October 29, 2020 31.Dt FMT 1 32.Os 33.Sh NAME 34.Nm fmt 35.Nd simple text formatter 36.Sh SYNOPSIS 37.Nm 38.Op Fl cmnps 39.Op Fl d Ar chars 40.Op Fl l Ar num 41.Op Fl t Ar num 42.Op Ar goal Oo Ar maximum Oc | Fl Ns Ar width | Fl w Ar width 43.Op Ar 44.Sh DESCRIPTION 45The 46.Nm 47utility is a simple text formatter which reads the concatenation of input 48files (or standard input if none are given) and produces on standard 49output a version of its input with lines as close to the 50.Ar goal 51length 52as possible without exceeding the 53.Ar maximum . 54The 55.Ar goal 56length defaults 57to 65 and the 58.Ar maximum 59to 10 more than the 60.Ar goal 61length. 62Alternatively, a single 63.Ar width 64parameter can be specified either by prepending a hyphen to it or by using 65.Fl w . 66For example, 67.Dq Li fmt -w 72 , 68.Dq Li fmt -72 , 69and 70.Dq Li fmt 72 72 71all produce identical output. 72The spacing at the beginning of the input lines is preserved in the output, 73as are blank lines and interword spacing. 74Lines are joined or split only at white space; that is, words are never 75joined or hyphenated. 76.Pp 77The options are as follows: 78.Bl -tag -width indent 79.It Fl c 80Center the text, line by line. 81In this case, most of the other 82options are ignored; no splitting or joining of lines is done. 83.It Fl m 84Try to format mail header lines contained in the input sensibly. 85.It Fl n 86Format lines beginning with a 87.Ql \&. 88(dot) character. 89.It Fl p 90Allow indented paragraphs. 91Without the 92.Fl p 93flag, any change in the amount of whitespace at the start of a line 94results in a new paragraph being begun. 95.It Fl s 96Collapse whitespace inside lines, so that multiple whitespace 97characters are turned into a single space. 98(Or, at the end of a 99sentence, a double space.) 100.It Fl d Ar chars 101Treat the 102.Ar chars 103(and no others) as sentence-ending characters. 104By default the 105sentence-ending characters are full stop 106.Pq Ql \&. , 107question mark 108.Pq Ql \&? 109and exclamation mark 110.Pq Ql \&! . 111Remember that some characters may need to be 112escaped to protect them from your shell. 113.It Fl l Ar number 114Replace multiple spaces with tabs at the start of each output 115line, if possible. 116Each 117.Ar number 118spaces will be replaced with one tab. 119The default is 8. 120If 121.Ar number 122is 0, spaces are preserved. 123.It Fl t Ar number 124Assume that the input files' tabs assume 125.Ar number 126spaces per tab stop. 127The default is 8. 128.El 129.Pp 130The 131.Nm 132utility 133is meant to format mail messages prior to sending, but may also be useful 134for other simple tasks. 135For instance, 136within visual mode of the 137.Xr ex 1 138editor (e.g., 139.Xr vi 1 ) 140the command 141.Pp 142.Dl \&!}fmt 143.Pp 144will reformat a paragraph, 145evening the lines. 146.Sh ENVIRONMENT 147The 148.Ev LANG , LC_ALL 149and 150.Ev LC_CTYPE 151environment variables affect the execution of 152.Nm 153as described in 154.Xr environ 7 . 155.Sh EXAMPLES 156Center the text in standard input: 157.Bd -literal -offset indent 158$ echo -e 'The merit of all things\enlies\enin their difficulty' | fmt -c 159 The merit of all things 160 lies 161 in their difficulty 162.Ed 163.Pp 164Format the text in standard input collapsing spaces: 165.Bd -literal -offset indent 166$ echo -e 'Multiple spaces will be collapsed' | fmt -s 167Multiple spaces will be collapsed 168.Ed 169.Sh SEE ALSO 170.Xr fold 1 , 171.Xr mail 1 172.Sh HISTORY 173The 174.Nm 175command appeared in 176.Bx 3 . 177.Pp 178The version described herein is a complete rewrite and appeared in 179.Fx 4.4 . 180.Sh AUTHORS 181.An Kurt Shoens 182.An Liz Allen 183(added 184.Ar goal 185length concept) 186.An Gareth McCaughan 187.Sh BUGS 188The program was designed to be simple and fast \- for more complex 189operations, the standard text processors are likely to be more appropriate. 190.Pp 191When the first line of an indented paragraph is very long (more than 192about twice the goal length), the indentation in the output can be 193wrong. 194.Pp 195The 196.Nm 197utility is not infallible in guessing what lines are mail headers and what 198lines are not. 199