Robert Elder Software Inc.
  • Home
  • Store
  • Blog
  • Contact
  • Home
  • Store
  • Blog
  • Contact
  • #linux
  • |
  • #commandline
  • |
  • #softwareengineering
  • |
  • #embeddedsystems
  • |
  • #compilers
  • ...
  • View All >>

Intro To 'fmt' Command In Linux

2023-06-08 - By Robert Elder

     I use the 'fmt' command to format the spaces and lines in text files:

echo "The   quick   brown   fox." | fmt -u
The quick brown fox.

Default Behaviour

     Here, I have a document called 'gnu_linux.txt' that contains some very important information:

I'd    just    like    to    interject    for    a    moment.        What    you're    referring    to    as    Linux,    is    in    fact,    GNU/Linux,    or    as    I've    recently    taken    to    calling    it,    GNU    plus    Linux.        Linux    is    not    an    operating    system    unto    itself,    but    rather    another    free    component    of    a    fully    functioning    GNU    system    made    useful    by    the    GNU    corelibs,    shell    utilities    and    vital    system    components    comprising    a    full    OS    as    defined    by    POSIX.

Many    computer    users    run    a    modified    version    of    the    GNU    system    every    day,    without    realizing    it.        Through    a    peculiar    turn    of    events,    the    version    of    GNU    which    is    widely    used    today    is    often    called    "Linux",    and    many    of    its    users    are    not    aware    that    it    is    basically    the    GNU    system,    developed    by    the    GNU    Project.

There    really    is    a    Linux,    and    these    people    are    using    it,    but    it    is    just    a    part    of    the    system    they    use.        Linux    is    the    kernel:    the    program    in    the    system    that    allocates    the    machine's    resources    to    the    other    programs    that    you    run.        The    kernel    is    an    essential    part    of    an    operating    system,    but    useless    by    itself;    it    can    only    function    in    the    context    of    a    complete    operating    system.        Linux    is    normally    used    in    combination    with    the    GNU    operating    system:    the    whole    system    is    basically    GNU    with    Linux    added,    or    GNU/Linux.        All    the    so-called    "Linux"    distributions    are    really    distributions    of    GNU/Linux.

     This file contains lines that are way too long. I can pipe this text into the 'fmt' command and the lines will be formatted to a maximum width of 75 columns:

cat gnu_linux.txt | fmt
I'd    just    like    to    interject    for    a    moment.
What    you're    referring    to    as    Linux,    is    in    fact,
GNU/Linux,    or    as    I've    recently    taken    to    calling
it,    GNU    plus    Linux.        Linux    is    not    an    operating
system    unto    itself,    but    rather    another    free    component
of    a    fully    functioning    GNU    system    made    useful
by    the    GNU    corelibs,    shell    utilities    and    vital
system    components    comprising    a    full    OS    as    defined
by    POSIX.

Many    computer    users    run    a    modified    version    of
the    GNU    system    every    day,    without    realizing    it.
Through    a    peculiar    turn    of    events,    the    version    of
GNU    which    is    widely    used    today    is    often    called
"Linux",    and    many    of    its    users    are    not    aware
that    it    is    basically    the    GNU    system,    developed
by    the    GNU    Project.

There    really    is    a    Linux,    and    these    people    are
using    it,    but    it    is    just    a    part    of    the
system    they    use.        Linux    is    the    kernel:    the
program    in    the    system    that    allocates    the    machine's
resources    to    the    other    programs    that    you    run.
The    kernel    is    an    essential    part    of    an    operating
system,    but    useless    by    itself;    it    can    only
function    in    the    context    of    a    complete    operating
system.        Linux    is    normally    used    in    combination
with    the    GNU    operating    system:    the    whole    system
is    basically    GNU    with    Linux    added,    or    GNU/Linux.
All    the    so-called    "Linux"    distributions    are    really
distributions    of    GNU/Linux.

Formatting Column Widths

     I can also specify a different maximum column width like 60 using the '-w' flag like this:

cat gnu_linux.txt | fmt -w 60
I'd    just    like    to    interject    for    a
moment.        What    you're    referring    to    as
Linux,    is    in    fact,    GNU/Linux,    or    as
I've    recently    taken    to    calling    it,    GNU
plus    Linux.        Linux    is    not    an    operating
system    unto    itself,    but    rather    another
free    component    of    a    fully    functioning    GNU
system    made    useful    by    the    GNU    corelibs,
shell    utilities    and    vital    system    components
comprising    a    full    OS    as    defined    by
POSIX.

Many    computer    users    run    a    modified
version    of    the    GNU    system    every    day,
without    realizing    it.        Through    a    peculiar
turn    of    events,    the    version    of    GNU
which    is    widely    used    today    is    often
called    "Linux",    and    many    of    its    users
are    not    aware    that    it    is    basically    the
GNU    system,    developed    by    the    GNU    Project.

There    really    is    a    Linux,    and    these
people    are    using    it,    but    it    is
just    a    part    of    the    system    they    use.
Linux    is    the    kernel:    the    program    in
the    system    that    allocates    the    machine's
resources    to    the    other    programs    that    you
run.        The    kernel    is    an    essential    part
of    an    operating    system,    but    useless    by
itself;    it    can    only    function    in    the
context    of    a    complete    operating    system.
Linux    is    normally    used    in    combination
with    the    GNU    operating    system:    the    whole
system    is    basically    GNU    with    Linux    added,
or    GNU/Linux.        All    the    so-called    "Linux"
distributions    are    really    distributions    of
GNU/Linux.

Collapse Whitespace

     You can also use the '-u' flag to enforce uniform spacing.

cat gnu_linux.txt | fmt -w 60 -u
I'd just like to interject for a moment.  What you're
referring to as Linux, is in fact, GNU/Linux, or as I've
recently taken to calling it, GNU plus Linux.  Linux is
not an operating system unto itself, but rather another
free component of a fully functioning GNU system made
useful by the GNU corelibs, shell utilities and vital
system components comprising a full OS as defined by POSIX.

Many computer users run a modified version of the GNU
system every day, without realizing it.  Through a peculiar
turn of events, the version of GNU which is widely used
today is often called "Linux", and many of its users are
not aware that it is basically the GNU system, developed
by the GNU Project.

There really is a Linux, and these people are using it,
but it is just a part of the system they use.  Linux is
the kernel: the program in the system that allocates the
machine's resources to the other programs that you run.
The kernel is an essential part of an operating system,
but useless by itself; it can only function in the context
of a complete operating system.  Linux is normally used in
combination with the GNU operating system: the whole system
is basically GNU with Linux added, or GNU/Linux.  All the
so-called "Linux" distributions are really distributions
of GNU/Linux.

Goal Column Widths

     You can get a slightly more compact result by specifying a goal width instead of a fixed width with the '-g' flag like this:

cat gnu_linux.txt | fmt -g 60 -u
I'd just like to interject for a moment.  What you're referring
to as Linux, is in fact, GNU/Linux, or as I've recently taken
to calling it, GNU plus Linux.  Linux is not an operating
system unto itself, but rather another free component of a
fully functioning GNU system made useful by the GNU corelibs,
shell utilities and vital system components comprising a full
OS as defined by POSIX.

Many computer users run a modified version of the GNU system
every day, without realizing it.  Through a peculiar turn of
events, the version of GNU which is widely used today is often
called "Linux", and many of its users are not aware that it
is basically the GNU system, developed by the GNU Project.

There really is a Linux, and these people are using it, but it
is just a part of the system they use.  Linux is the kernel:
the program in the system that allocates the machine's resources
to the other programs that you run.  The kernel is an essential
part of an operating system, but useless by itself; it can
only function in the context of a complete operating system.
Linux is normally used in combination with the GNU operating
system: the whole system is basically GNU with Linux added,
or GNU/Linux.  All the so-called "Linux" distributions are
really distributions of GNU/Linux.

     And that's why the 'fmt' command is my favourite Linux command.

Intro To 'stty' Command In Linux
Intro To 'stty' Command In Linux
Published 2023-10-04
Terminal Block Mining Simulation Game
$1.00 CAD
Terminal Block Mining Simulation Game
Intro To 'nproc' Command In Linux
Intro To 'nproc' Command In Linux
Published 2023-07-15
Intro To 'comm' Command In Linux
Intro To 'comm' Command In Linux
Published 2023-09-06
How To Force The 'true' Command To Return 'false'
How To Force The 'true' Command To Return 'false'
Published 2023-07-09
A Surprisingly Common Mistake Involving Wildcards & The Find Command
A Surprisingly Common Mistake Involving Wildcards & The Find Command
Published 2020-01-21
A Guide to Recording 660FPS Video On A $6 Raspberry Pi Camera
A Guide to Recording 660FPS Video On A $6 Raspberry Pi Camera
Published 2019-08-01
Intro To 'chroot' Command In Linux
Intro To 'chroot' Command In Linux
Published 2023-06-23
Join My Mailing List
Privacy Policy
Why Bother Subscribing?
  • Free Software/Engineering Content. I publish all of my educational content publicly for free so everybody can make use of it.  Why bother signing up for a paid 'course', when you can just sign up for this email list?
  • Read about cool new products that I'm building. How do I make money? Glad you asked!  You'll get some emails with examples of things that I sell.  You might even get some business ideas of your own :)
  • People actually like this email list. I know that sounds crazy, because who actually subscribes to email lists these days, right?  Well, some do, and if you end up not liking it, I give you permission to unsubscribe and mark it as spam.
© 2025 Robert Elder Software Inc.
SocialSocialSocialSocialSocialSocialSocial
Privacy Policy      Store Policies      Terms of Use