Linux fold 命令:如何按指定宽度折叠长行
创建时间 2026-09-27
最后修改 2026-10-28
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 命令文档。
