Reformat paragraph text, fill and join lines to produce output lines of a given width (75 characters by default).

     fmt [option(s)]... [file]...


       "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 paragraph.

       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. 

   -p PREFIX
       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.

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

The fmt utility is meant to format mail messages prior to sending, but can also be useful for other simple tasks.

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 output.

'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.

"Everything flows and nothing abides; everything gives way and nothing stays fixed” ~ Heraclitus

Related Linux commands

mail(1), nroff(1).
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.

Copyright © 1999-2024
Some rights reserved