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命令会相应地切换到正常字符集或替代字符集。
评论区