Linux 文本格式化命令 fmt 用法

作者: Himanshu Arora 译者: LCTT DarkSun

本教程将会讨论 fmt 的基本用法以及它提供的一些主要功能。

适用的 Linux 版本

fmt 命令是一个标准的 Linux 命令,它适用于大多数的 Linux 发行版,如 Ubuntu、Debian、Fedora、CentOS 等。

如果系统中没有安装 fmt 命令,可以使用以下命令来安装它:

  • 基于 Debian 的系统,如 Ubuntu,可以使用 apt-get 命令:
$ sudo apt-get install coreutils
  • 基于 Red Hat 的系统,如 Fedora 或 CentOS,可以使用 yum 或 dnf 命令:
$ sudo yum install coreutils

$ sudo dnf install coreutils

fmt 命令基本语法:

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

重新格式化文件中的每一个段落,将结果写到标准输出。选项 -WIDTH--width=DIGITS 形式的缩写。

fmt 命令基本语法常用选项说明

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

fmt 命令使用实例

  1. 重新排列文本到指定宽度
    将文件 test.txt 重新排列成 85 个字符一行,并保存到新文件 new.txt 中:

    fmt -w 85 test.txt > new.txt
    
  2. 格式化特定前缀的行
    只格式化以 # 开头的注释行,并保留 # 符号:

    fmt -p '#' code.py
    
  3. 保留前两行的缩进:并使第一行和第二行的缩进不同

    fmt -t article.txt
    
  4. 统一单词和句子的间距:使用一个空格分隔单词,两个空格分隔句子

    fmt -u poem.txt
    
  5. 默认的 fmt 命令:会将给定文件中的所有单词格式化为一行

    fmt kt.txt
    
  6. 使用 -s 选项拆分长行:拆分长行,但不填充它们

    fmt -s kt.txt
    
  7. 格式化多个文件:同时处理多个文件

    fmt file1.txt file2.txt
    
  8. 使用重定向操作符: 使用重定向将格式化后的文本保存到新的文件中

    fmt file1.txt > formatted_file1.txt
    
  9. 使用管道操作符:将其他命令的输出格式化

    ls -l | fmt
    

fmt 命令的注意事项

  • fmt 命令只能处理普通文本文件,不能处理富文本文件或二进制文件。

  • fmt 命令会忽略空白行和制表符,并将多个空格替换为一个空格。

  • fmt 命令会尽量保持单词的完整性,不会在单词中间断行,除非单词本身就超过了指定的宽度。

  • fmt 命令会根据输入中的字符集切换来确定输出时是否需要切换字符集。如果输入中有 SI(shift in)和 SO(shift out)这样的控制字符,fmt 命令会相应地切换到正常字符集或替代字符集。

总结

fmt 提供的功能不多,但不代表它的应用就不广泛。

在本教程中讲解了 fmt 提供的主要选项,了解更多细节,请查看该工具的 man 页


via: https://www.howtoforge.com/linux-fmt-command/

作者:Himanshu Arora 译者:lujun9972 校对:wxy

本文由 LCTT 原创编译,Linux 中国 荣誉推出 2018-01-15 13:54

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值