侧边栏壁纸
Linux入门自学网博主等级

每日学一条Linux命令,终成Linux大神

  • 累计撰写 725 篇文章
  • 累计创建 143 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

Linux fmt命令用法详解:如何简单高效地格式化文本文件

Linux fmt命令介绍

fmt命令是一个简单的文本格式化工具,它可以将文本文件重新排列成指定的宽度,使其更加易读和美观。它的全称是format,意思是格式化。它的基本语法如下:

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

这里的-WIDTH是--width=DIGITS的缩写形式,用来指定每行的最大字符数。OPTION是一些可选的参数,用来控制格式化的方式。FILE是要格式化的文件名,如果没有指定文件,或者文件为"-",则从标准输入读取数据。

适用的Linux版本

fmt命令是一个标准的Linux命令,它适用于大多数的Linux发行版,如Ubuntu、Debian、Fedora、CentOS等。如果你的系统中没有安装fmt命令,你可以使用以下命令来安装它:

  • 对于基于Debian的系统,如Ubuntu,你可以使用apt-get命令:
[linux@bashcommandnotfound.cn ~]$ sudo apt-get install coreutils
  • 对于基于Red Hat的系统,如Fedora或CentOS,你可以使用yum或dnf命令:
[linux@bashcommandnotfound.cn ~]$ sudo yum install coreutils
或者
[linux@bashcommandnotfound.cn ~]$ sudo dnf install coreutils

Linux fmt命令的基本用法

fmt命令的基本用法是将文本文件重新排列成指定的宽度,默认为72个字符。例如,如果有一个文件test.txt,其内容如下:

hello Linux! Linux is a free Unix-type operating system. This is a Linux testfile! Linux Linux

我们可以使用fmt命令来格式化它,命令如下:

[linux@bashcommandnotfound.cn ~]$ fmt test.txt

输出结果如下:

hello Linux! Linux is a free Unix-type operating system. This is a
Linux testfile! Linux Linux

我们可以看到,输出结果中每行不超过72个字符,并且尽量保持单词完整。

Linux fmt命令的常用选项说明

fmt命令有以下几个常用的选项:

选项说明
-c保持每段前两行的缩进不变
-p只格式化以指定字符串开头的行,并保留该字符串
-s只拆分超过指定宽度的行,不合并不足指定宽度的行
-t保持每段前两行的缩进不变,并使第一行和第二行的缩进不同
-u使用一个空格分隔单词,两个空格分隔句子
-w指定每行的最大字符数

Linux fmt命令的实例

下面给出一些使用fmt命令的实例:

  • 将文件test.txt重新排列成85个字符一行,并保存到新文件new.txt中,命令如下:
[linux@bashcommandnotfound.cn ~]$ fmt -w 85 test.txt > new.txt
  • 只格式化以#开头的注释行,并保留#符号,命令如下:
[linux@bashcommandnotfound.cn ~]$ fmt -p # code.py
  • 保持每段前两行的缩进不变,并使第一行和第二行的缩进不同,命令如下:
[linux@bashcommandnotfound.cn ~]$ fmt -t article.txt
  • 使用一个空格分隔单词,两个空格分隔句子,命令如下:
[linux@bashcommandnotfound.cn ~]$ fmt -u poem.txt

Linux fmt命令的注意事项

  • fmt命令只能处理普通文本文件,不能处理富文本文件或二进制文件。
  • fmt命令会忽略空白行和制表符,并将多个空格替换为一个空格。
  • fmt命令会尽量保持单词的完整性,不会在单词中间断行,除非单词本身就超过了指定的宽度。
  • fmt命令会根据输入中的字符集切换来确定输出时是否需要切换字符集。如果输入中有SI(shift in)和SO(shift out)这样的控制字符,fmt命令会相应地切换到正常字符集或替代字符集。
0

评论区