首页/系统/Linux 运维命令速查/expand / unexpand 制表符与空格互转
本包目录(613 条)
文件与目录76 条
文本处理77 条
网络命令82 条进程与作业69 条磁盘与文件系统51 条用户与权限44 条日志与排查40 条systemd 与服务42 条包管理34 条性能与监控48 条定时任务与计划50 条

expand / unexpand 制表符与空格互转

expand 把 Tab 换成空格(对齐跨编辑器更稳),unexpand 反过来把空格压缩为 Tab,-a 处理行中所有空白。

Linux 运维命令速查系统更新于 2026-10-12
用途Tab 与空格互相转换
语法expand [-t 宽度] [文件] / unexpand [-a] [文件]
所属GNU coreutils

常用示例

常用示例
expand -t 4 tabbed.txt > spaced.txt
unexpand -a spaced.txt > tabbed.txt
cat -A file | head              # 先看看到底是 Tab 还是空格
Python/Go/YAML 等对缩进敏感的文件,混用 Tab 与空格常见事故:统一前先按项目规范确认用哪种。

易错点

  • unexpand 默认只转行首空白为 Tab(-a 才转全部),行中空格转 Tab 后文件字节变化,版本对比会全红
  • 转换不可无损往返(空格数不落在 tabstop 上无法精确还原),重要文件先备份

数据来源与参考

  • man 1 expand(GNU coreutils 手册)

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌