文本格式化工具全解析
1. 文本处理工具概述
在日常的文本处理中,有许多命令行工具可以帮助我们完成各种任务。默认情况下,aspell 会忽略文本中的 URL 和电子邮件地址,不过我们可以通过命令行选项来改变这一行为,还能指定要检查和跳过的标记标签。除了常见的工具外,还有一些有趣的文本操作命令值得探索,如 split(将文件分割成多个部分)、csplit(根据上下文分割文件)和 sdiff(并排合并文件差异)。
接下来,我们将重点介绍用于格式化文本输出而非改变文本本身的工具,这些工具常用于为打印文本做准备。主要涉及的程序有:
- nl:为文本行编号
- fold:将每行文本包装到指定长度
- fmt:简单的文本格式化工具
- pr:为打印格式化文本
- printf:格式化并打印数据
- groff:文档格式化系统
2. 简单格式化工具
这些简单的格式化工具大多是单一用途的程序,功能相对基础,但可用于小任务,也能作为管道和脚本的一部分。
2.1 nl - 为文本行编号
nl 程序用于为文本行编号,其最简单的用法类似于 cat -n。例如:
[me@linuxbox ~]$ nl distros.txt | head 1 SUSE 10.2 12/07/2006 2 Fedora 10 11/25/2008 3 SUSE 11.0 06/19/2008 4 Ubuntu 8.04 04/24/2008 5 Fedora 8 11/08/2