Reformat paragraph text, fills and joins lines to produce output lines of (at most) a given number of characters (75 by default).

     fmt [OPTION]... [FILE]...

`fmt' reads from the specified FILE arguments (or standard input if
none are given), and writes to standard output.

By default, blank lines, spaces between words, and indentation are
preserved in the output; successive input lines with different
indentation are not joined; tabs are expanded on input and introduced on

`fmt' prefers breaking lines at the end of a sentence, and tries to
avoid line breaks after the first word of a sentence or before the last
word of a sentence.  A "sentence break" is defined as either the end of
a paragraph or a word ending in any of `.?!', followed by two spaces or
end of line, ignoring any intervening parentheses or quotes.  Like TeX,
`fmt' reads entire "paragraphs" before choosing line breaks; the
algorithm is a variant of that in "Breaking Paragraphs Into Lines"
(Donald E. Knuth and Michael F. Plass, `Software--Practice and
Experience', 11 (1981), 1119-1184).


     "Crown margin" mode: preserve the indentation of the first two
     lines within a paragraph, and align the left margin of each
     subsequent line with that of the second line.

     "Tagged paragraph" mode: like crown margin mode, except that if
     indentation of the first line of a paragraph is the same as the
     indentation of the second, the first line is treated as a one-line

     Split lines only.  Do not join short lines to form longer ones.
     This prevents sample lines of code, and other such "formatted"
     text from being unduly combined.

     Uniform spacing.  Reduce spacing between words to one space, and
     spacing between sentences to two spaces.

`-w WIDTH'
     Fill output lines up to WIDTH characters (default 75).  `fmt'
     initially tries to make lines about 7% shorter than this, to give
     it room to balance line lengths.

     Only lines beginning with PREFIX (possibly preceded by whitespace)
     are subject to formatting. The prefix and any preceding whitespace
     are stripped for the formatting and then re-attached to each
     formatted output line.  One use is to format certain kinds of
     program comments, while leaving the code unchanged.

"I don't want to sound like I'm bragging but I think I've finally managed to play the record at the right speed - John Peel

Related commands:

csplit - Split a file into context-determined pieces
cut - Divide a file into several parts
fold - Wrap input lines to fit in specified width
join - Join lines on a common field
paste - Merge lines of files
split - Split a file into fixed-size pieces
tr - Translate, squeeze, and/or delete characters
tail - Output the last part of files

Equivalent Windows NT commands:


Back to the Top

Simon Sheppard