fold 命令详解
更新时间:2026-08-28。本文是「一个命令一个文档」系列,属于文本处理命令族(见文本处理命令族)。超长行塞不进显示/处理?按固定列数折开。
fold 把输入里超过指定宽度的行,在指定列处断开成多行。简单粗暴地"按列数折行"。
一、基本用法
bash
fold -w 80 long.txt # 每行最多 80 列,超出在 80 列处断
fold -w 72 verylong.log > wrapped.log
-w(width)设目标宽度,默认 80。它在"第 N 列"直接切断,不管单词边界——所以长单词会被劈成两半。
二、在空格处断行:-s
bash
fold -s -w 80 text.txt # -s 尽量在空格处断,不劈开单词
-s(spaces)优先在空格断行,让折出来的行更接近自然语言阅读。但如果没有足够空格(如超长无空格字符串),仍会在 -w 处硬断。想要"智能排版"用 fmt(见下方对比)。
三、与 fmt / awk 的区别
bash
fold -w 80 file # 机械按列断,可能劈单词
fmt -w 80 file # 按词排版,尽量不断词(更优雅)
awk '{print substr($0,1,80)}' file # 只取前80列(丢后面)fmt 是"段落重排"工具,按词折行更漂亮,但会合并空白、重排段落;
fold保留原文、只在列处折,更可控不破坏格式。awk substr是"截断"不是"折行"(后续内容丢失)。按格式完整性选 fold,按阅读美观选 fmt。
四、实战:窄屏/固定宽度输出
bash
curl -s url | fold -s -w 100 # 把一行超长 JSON/文本折成 100 列方便看处理 API 返回的超长单行、或要塞进固定宽度字段时,
fold -s -w快速规整。
相关命令
一句话总结
fold = 按列宽折行:-w 设宽度(默认 80),在列处硬断可能劈单词;-s 优先空格处断更可读;与 fmt(按词智能重排、更美观但会改段落)不同,fold 保留原文只折行、更可控。窄屏/固定宽度输出用 fold -s -w。