Redian新闻
>
我是如何使用 Linux fmt 命令来格式化文本 | Linux 中国

我是如何使用 Linux fmt 命令来格式化文本 | Linux 中国

科技
 
导读:fmt 命令是一个简单的文本格式化程序。我将在这里展示如何使用它来格式化文本和邮件回复。       
本文字数:2862,阅读时长大约:3分钟

fmt 命令是一个简单的文本格式化程序。我将在这里展示如何使用它来格式化文本和邮件回复。

当我为项目编写文档时,我经常以纯文本的形式编写自述文件和安装说明。我不需要使用 HTML 或者 Markdown 之类的标记语言来描述项目的功能或如何编译它。但是维护这样的文档可能会很痛苦。如果我需要更新我的 Readme 文件中的一个句子的中间位置,我需要重新格式化文本,以避免在我的其它文本中间出现一个很长或很短的行,而其它的行的格式是整整齐齐的 75 列。一些编辑器包含可以自动重新格式化文本以填充段落的功能,但并非所有的编辑器都这样做。这就是 Linux fmt 命令的用武之地。

使用 Linux fmt 命令格式化文本

fmt 命令是一个简单的文本格式化程序;它收集单词并填充段落,但不应用任何其它文本样式,例如斜体或粗体。这一切都是纯文本。使用 fmt 命令,你可以快速调整文本,使其更易于阅读。让我们从这个熟悉的示例文本开始:

  1. $ cat trek.txt
  2. Space: the final
  3. frontier. These are the voyages
  4. of the starship Enterprise. Its
  5. continuing mission: to explore
  6. strange new worlds. To
  7. seek out new life and new
  8. civilizations. To boldly go
  9. where no one has gone before!

在这个实例文件中,每行都有不同的长度,并且它们以一种奇怪的方式换行。如果你对纯文本文件进行大量更改,你可以会遇到类似的奇怪的换行。要重新格式化此文本,你可以使用 fmt 命令将段落的行填充为统一长度:

  1. $ fmt trek.txt
  2. Space: the final frontier. These are the voyages of the starship
  3. Enterprise. Its continuing mission: to explore strange new worlds. To
  4. seek out new life and new civilizations. To boldly go where no one has
  5. gone before!

默认情况下,fmt 会将文本格式化为 75 的列宽大小,但你可以使用 -w 或 --width 选项进行更改:

  1. $ fmt -w 60 trek.txt
  2. Space: the final frontier. These are the voyages of
  3. the starship Enterprise. Its continuing mission: to
  4. explore strange new worlds. To seek out new life and new
  5. civilizations. To boldly go where no one has gone before!

使用 Linux fmt 命令格式化电子邮件回复

我加入了一个邮件列表,这里更喜欢纯文本电子邮件,这使得在列表服务器上归档电子邮件变得更加容易。但现实是并非每个人都以纯文本形式发送电子邮件。有时候,当我以纯文本形式回复这些电子邮件时,我的电子邮件客户端会将整个段落放在一行中。这使得在电子邮件中“引用”回复变得困难。

这是一个简单的例子。当我以纯文本形式回复电子邮件时,我的电子邮件客户端通过在每行前添加 > 字符来“引用”对方的电子邮件。对于一条短消息,可能如下所示:

  1. > I like the idea of the interim development builds.

没有正确“换行”的长行将无法在我的纯文本电子邮件回复中正确显示,因为它只是前面带有 > 字符的长行,如下所示:

  1. > I like the idea of the interim development builds. This should be a great way to test new changes that everyone can experiment with.

为了解决这个问题,我打开了一个终端并将引用的文本复制并粘贴到一个新文件中。然后我使用 -p 或 --prefix 选项来告诉 fmt 在每一行之前使用什么字符作为“前缀”。

  1. $ cat > email.txt
  2. > I like the idea of the interim development builds. This should be a great way to test new changes that everyone can experiment with.
  3. ^D
  4. $ fmt -p '>' email.txt
  5. > I like the idea of the interim development builds. This should be a
  6. > great way to test new changes that everyone can experiment with.

fmt 命令是一个非常简单的文本格式化程序,但它可以做很多有用的事情,可以帮助以纯文本形式编写和更新文档。要了解其它选项,例如 -c 或 --crown-margin 以匹配段落前两行缩进,例如项目列表。还可以尝试使用 -t 或者 --tagged-paragraph 来保留段落中第一行的缩进,就像缩进的段落一样。-u 或 --uniform-spacing 选项在单词之间使用一个空格,在句子之间使用两个空格。


via: https://opensource.com/article/22/7/fmt-trivial-text-formatter

作者:Jim Hall 选题:lkxed 译者:perfiffer 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出


LCTT 译者 :perfiffer
🌟🌟🌟
翻译: 20.0 篇
|
贡献: 373 天
2021-07-24
2022-07-31
https://linux.cn/lctt/perfiffer
欢迎遵照 CC-BY-SA 协议规定转载,
如需转载,请在文章下留言 “转载:公众号名称”,
我们将为您添加白名单,授权“转载文章时可以修改”。

微信扫码关注该文公众号作者

戳这里提交新闻线索和高质量文章给我们。
相关阅读
传统的 Linux 软件包格式不适合现代应用 | Linux 中国使用 Linux 上的开源财务工具 Skrooge 管理你的预算 | Linux 中国企业为何使用开源软件,又为何推动开源软件的发展 | Linux 中国检查 Linux 磁盘使用情况 | Linux 中国在 Linux 上使用 Bash 创建一个临时文件 | Linux 中国在 Linux 上使用 Rhythbox 听音乐 | Linux 中国貌似要下大雨了使用 OpenSMTPD 将邮件中继到多个 smarthost | Linux 中国Memorial Day 2022我如何使用开源玩 RPG 游戏 | Linux 中国HandBrake:用于转换任何格式视频的免费工具 | Linux 中国外媒点评:deepin 23 将引入新的软件包格式和存储库 | Linux 中国在 Ubuntu 和 Debian 中使用 apt 命令更新单个软件包 | Linux 中国花的日志:紫色的鹫尾花开放啦在 Linux 中使用组合键输入隐藏的字形 | Linux 中国10 大可以摧毁你的 Linux 的命令 | Linux 中国“作弊”:只需要知道这一个 Linux 命令就够了 | Linux 中国Linux——如何使用 evilscan 扫描网络开源朗读者:我是如何帮助妈妈从 Windows 切换至 Linux 的 | Linux 中国如何使用原生 NTFS 驱动替代旧版 FUSE NTFS 驱动 | Linux 中国如何使用 FreeDOS Edit | Linux 中国医疗数字化转型:不断“格式化”的曲毅,与技术赋能的奈特瑞原创 | 全球未来格局预判与前瞻如何使用 Linux sed 命令自动进行文件编辑 | Linux 中国加拿大洛基山_Banff_Jasper_Yoho_NP - 行程如何使用开源工具集合 FFmpeg 减小视频大小如何在 Linux 中使用 Pandoc 转换文件格式 | Linux 中国你应该知道的 22 个基本的 Linux 网络命令 | Linux 中国在 Linux 中使用 Etcher 创建可启动 USB – 下载和使用指南 | Linux 中国在 Linux 上安装 FFmpeg | Linux 中国Linux Lite 6.0 发布:弃用 Firefox,默认浏览器使用 Chrome | Linux 中国我如何使用现场 USB 设备恢复我的 Linux 系统 | Linux 中国端午唱《橘颂》忆屈原如何使用 Dockerfile 创建自定义 Docker 镜像 | Linux 中国我如何使用 Groovy 分析我的音乐目录 | Linux 中国
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。