Linux 命令:fold

概述

Linux 中的 fold 命令是按指定宽度折行显示文本的工具,核心作用是将过长的文本行自动拆分,避免终端或文档中出现横向滚动,常用于格式化日志、配置文件、长文本的输出,是文本排版的实用基础命令。

资料合集:https://pan.quark.cn/s/6fe3007c3e95https://pan.quark.cn/s/561de99256a5https://pan.quark.cn/s/985f55b13d94https://pan.quark.cn/s/d0fb20abd19a

一、基本语法

bash 复制代码
fold [选项] [文件1] [文件2] ...

无文件参数时,默认读取标准输入 (可配合管道 | 对其他命令的输出做折行处理)。

二、核心功能与默认行为

  1. 默认按每行80个字符折行(适配传统终端的宽度);
  2. 折行仅按字符数 拆分,不会识别单词边界(可能将一个单词从中间拆开);
  3. 拆分后的行保留原文本的字符顺序,多文件会按顺序拼接折行。
简单示例

新建一个长文本文件 longline.txt,内容为一行超长字符串:

复制代码
Linux fold command is used to wrap long lines of text into specified width, it's a basic text formatting tool.

执行默认折行命令:

bash 复制代码
fold longline.txt

输出会被拆分为多行(每行最多80字符),若原行不足80字符则保持原样。

三、常用选项(重点)

fold 的选项主要用于自定义折行宽度、是否识别字节/空格,高频选项均为单字符,可组合使用:

选项 英文全称 作用 实用场景
-w N --width=N 指定折行宽度为N个字符(核心选项) 适配窄终端、固定文档排版宽度
-b --bytes 字节数折行,而非字符数 处理含中文/多字节字符的文本(避免乱码)
-s --spaces 空格折行(不拆分单词) 格式化英文文本、日志,保证单词完整性
-n ------ 部分系统(如BSD)中替代-b,按字节折行 跨系统兼容场景

四、经典实用示例

覆盖日常最常用的折行场景,含纯英文、多字节中文、管道配合、单词防拆分等核心用法。

场景1:自定义折行宽度(最常用)

将长文本按每行30个字符折行,替代默认80字符:

bash 复制代码
fold -w 30 longline.txt
场景2:处理中文/多字节文本(避免乱码)

中文属于多字节字符 (UTF-8下占3字节),默认按字符折行可能因"字符-字节"不匹配导致乱码,需用-b按字节折行:

新建含中文的长行文件 cn_longline.txt

复制代码
fold命令是Linux的文本折行工具,可将超长的文本行按指定宽度拆分,适合格式化日志和配置文件。

执行按字节折行(指定每行20字节,适配窄终端):

bash 复制代码
fold -b -w 20 cn_longline.txt
场景3:折行不拆分单词(英文文本专属)

-s选项让fold最近的空格处折行,保证单词完整性,避免"断词":

bash 复制代码
# 按40字符折行,且遇空格拆分(不拆单词)
fold -s -w 40 longline.txt

输出示例(单词完整,行宽不超40):

复制代码
Linux fold command is used to wrap long lines of
text into specified width, it's a basic text
formatting tool.
场景4:配合管道处理其他命令输出

catgrepls -l等命令的超长输出做折行,比如查看目录下超长文件名的列表并折行:

bash 复制代码
# 列出当前目录所有文件,按50字符折行,避免横向滚动
ls -l | fold -w 50
场景5:多文件批量折行并输出到新文件

file1.txtfile2.txt按35字符折行,结果写入formatted.txt

bash 复制代码
fold -w 35 file1.txt file2.txt > formatted.txt

五、关键注意事项

  1. 多字节字符处理 :UTF-8编码下,中文、表情、特殊符号均为多字节,必须加-b按字节折行,否则会出现字符截断、乱码;
  2. -s的局限性 :仅在有空格时生效,若一行无任何空格(如纯数字/密文),仍会按字符数直接拆分;
  3. 折行不修改原文件fold仅格式化输出 ,不会改变原文件内容,需通过重定向>写入新文件才会保存折行结果;
  4. fmt命令的区别fold纯按长度硬拆分 ,无文本排版逻辑;fmt智能格式化(自动调整行宽、保留段落、对齐单词),适合更美观的文本排版。

六、与同类命令fmt的核心区别

二者均为文本折行工具,但定位和功能差异明显,按需选择:

命令 折行逻辑 单词处理 多字节字符 适用场景
fold 按字符/字节数硬拆分 默认拆分,-s可避拆 需加-b防乱码 快速格式化、日志/密文折行、管道临时输出
fmt 智能调整行宽,保留段落 自动避拆单词 原生支持,无需额外选项 英文文档、文章、配置文件的美观排版

示例 :用fmt格式化同一份长文本(自动按75字符折行,保留单词):

bash 复制代码
fmt -w 75 longline.txt

总结

fold轻量、快速的文本折行工具,核心优势是简单、高效,无多余排版逻辑,日常使用的高频组合:

  1. 英文短文本快速折行:fold -w N 文件名
  2. 中文/多字节文本折行:fold -b -w N 文件名
  3. 英文文本防断词折行:fold -s -w N 文件名
  4. 命令输出临时折行:命令 | fold -w N
相关推荐
wdfk_prog7 小时前
[Linux]学习笔记系列 -- [drivers][input]input
linux·笔记·学习
七夜zippoe8 小时前
CANN Runtime任务描述序列化与持久化源码深度解码
大数据·运维·服务器·cann
盟接之桥8 小时前
盟接之桥说制造:引流品 × 利润品,全球电商平台高效产品组合策略(供讨论)
大数据·linux·服务器·网络·人工智能·制造
忆~遂愿8 小时前
ops-cv 算子库深度解析:面向视觉任务的硬件优化与数据布局(NCHW/NHWC)策略
java·大数据·linux·人工智能
湘-枫叶情缘8 小时前
1990:种下那棵不落叶的树-第6集 圆明园的对话
linux·系统架构
Fcy6489 小时前
Linux下 进程(一)(冯诺依曼体系、操作系统、进程基本概念与基本操作)
linux·运维·服务器·进程
袁袁袁袁满9 小时前
Linux怎么查看最新下载的文件
linux·运维·服务器
代码游侠10 小时前
学习笔记——设备树基础
linux·运维·开发语言·单片机·算法
Gary Studio10 小时前
rk芯片驱动编写
linux·学习
mango_mangojuice10 小时前
Linux学习笔记(make/Makefile)1.23
java·linux·前端·笔记·学习