fmt命令是一个文本格式化工具,通过调整文本布局使其更加易读。它可以从文件或标准输入接收内容,通过填充和合并行来生成指定宽度的输出。默认情况下,fmt将行宽限制为75个字符,可以通过命令行选项进行调整。它特别适合重新格式化文本文档、邮件草稿或任何需要统一行长度的纯文本文件,确保内容呈现更加整洁和一致。

在本教程中,我们将讨论fmt的基础知识及其主要功能。本文提到的所有命令和说明均在Ubuntu 24.04上进行了测试。

Linux fmt命令

fmt命令是Linux命令行用户可以使用的一个简单文本格式化工具。以下是它的基本语法:

fmt [-WIDTH] [OPTION]... [FILE]...

以下是man页面对它的描述:

Reformat each paragraph in the FILE(s), writing to standard output. The option -WIDTH is an abbreviated form of --width=DIGITS.

以下是一些问答形式的示例,可以帮助你很好地理解fmt的用法。

Q1. 如何使用fmt将文件内容格式化为单行?

当以基本形式(不带选项)使用时,fmt命令就会执行此操作。你只需要将文件名作为参数传递即可。

fmt [file-name]

以下截图展示了该命令的实际运行效果:

Linux fmt命令使用教程

可以看到,文件中的多行内容被格式化为合并到单行中。请注意,原始文件(本例中为file1)保持不变。

Q2. 如何更改最大行宽?

默认情况下,fmt命令输出的最大行宽为75。但是,如果你想修改这个值,可以使用-w命令行选项,该选项需要一个表示新限制的数值。

fmt -w [n] [file-name]

以下是将宽度减少到20的示例:

Linux fmt命令使用教程

Q3. 如何让fmt突出显示首行?

可以通过使首行的缩进与其余行不同来实现这一点,你可以使用-t命令行选项来完成。

fmt -t [file-name]

Linux fmt命令使用教程

Q4. 如何让fmt拆分长行?

fmt命令还可以拆分长行,这个功能可以通过-s命令行选项来使用。

fmt -s [file-name]

以下是该选项的示例:

Linux fmt命令使用教程

Q5. 如何为单词和行设置不同的间距?

fmt命令提供了-u选项,确保单词之间有一个空格,句子之间有两个空格。以下是使用方法:

fmt -u [file-name]

请注意,在我们的测试环境中,此功能默认是启用的。

总结

诚然,fmt提供的功能有限,但不能说它的受众也有限。你永远不知道什么时候可能需要它。在本教程中,我们介绍了fmt提供的大部分命令行选项。如需了解更多详情,请参阅该工具的man页面