Linux fold 命令:如何按指定宽度折叠长行

fold 命令将输入中的长行折成指定宽度的多行输出。与重新整理段落的 fmt 不同,fold 主要限制每一行的宽度。

默认宽度为 80 列。使用 -s 时,命令会尽可能在空白处换行。结果发送到标准输出,不会修改原文件。

基本语法

fold [选项] [文件 ...]

不同发行版的实现和选项可能不同,请使用 man fold 查看当前系统的说明。

使用示例

要按默认的 80 列宽度显示文件,可以运行:

fold long-lines.txt

要将宽度设为 60 列并尽量在空白处换行,可以使用:

fold -s -w 60 paragraph.txt

请将文件名替换为实际存在的文本文件。如果一个单词超过指定宽度,它仍可能被拆开。

尝试固定宽度

下面的命令生成没有空格的输入,并每四列折成一行:

printf 'abcdefghij\n' | fold -w 4

预期输出:

abcd
efgh
ij

选项与限制

选项 作用
-w N 设置输出宽度。
-s 尽可能在空白处换行。
-b 按字节而非显示列数计算宽度。

-b 可能在 UTF-8 字符的字节序列中间截断,因此处理多语言文本时应格外小心。制表符、宽字符和表情符号的显示也可能随环境而异。如果原始行的边界对数据有意义,将折行结果作为其他程序的输入前应先检查。

fold 和 fmt 有什么区别?

fold 限制各行的长度,而 fmt 重新排列文本段落的换行。有关 GNU 选项与行为的详细说明,请参阅 GNU fold 命令文档。