Reformatting Paragraphs
Most powerful text editors provide commands that make it easy to reformat paragraphs by changing line breaks so that lines do not exceed a width that is comfortable for a human to read; we used such commands a lot in writing this book. Sometimes you need to do this to a data stream in a shell script, or inside an editor that lacks a reformatting command but does have a shell escape. In this case, fmt is what you need. Although POSIX makes no mention of fmt, you can find it on every current flavor of Unix; if you have an older system that lacks fmt, simply install the GNU coreutils package.
Although some implementations of fmt have more options, only two find frequent
use: -s means split long lines only, but do not join
short lines to make longer ones, and -w
n sets the output line width to
n characters (default: usually about 75 or so).
Here are some examples with chunks of a spelling dictionary that has
just one word per line:
$sed -n -e 9991,10010p /usr/dict/words | fmtReformat 20 dictionary words Graff graft graham grail grain grainy grammar grammarian grammatic granary grand grandchild grandchildren granddaughter grandeur grandfather grandiloquent grandiose grandma grandmother $sed -n -e 9995,10004p /usr/dict/words | fmt -w 30Reformat 10 words into short lines grain grainy grammar grammarian grammatic granary grand grandchild grandchildren granddaughter
If your system does not have /usr/dict/words, then it probably has an
equivalent file named
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access