expand 与 unexpand 命令实例教程
创始人
2024-03-02 02:57:08
0

Expand And Unexpand Commands Explained

本指南通过实际的例子解释两个 Linux 命令,即 expandunexpand。对于好奇的人,expandunexpand 命令用于将文件中的 TAB 字符替换为空格,反之亦然。在 MS-DOS 中也有一个名为 expand 的命令,它用于解压压缩文件。但 Linux 的 expand 命令只是将 TAB 转换为空格。这两个命令是 GNU coreutils 包的一部分,由 David MacKenzie 编写。

为了演示,我将在本文使用名为 ostechnix.txt 的文本文件。下面给出的所有命令都在 Arch Linux 中进行测试。

expand 命令示例

与我之前提到的一样,expand 命令使用空格替换文件中的 TAB 字符。

现在,让我们将 ostechnix.txt 中的 TAB 转换为空格,并将结果写入标准输出:

$ expand ostechnix.txt

如果你不想在标准输出中显示结果,只需将其写入另一个文件,如下所示。

$ expand ostechnix.txt>output.txt

我们还可以将标准输入中的 TAB 转换为空格。为此,只需运行 expand 命令而不带文件名:

$ expand

只需输入文本并按回车键就能将 TAB 转换为空格。按 CTRL+C 退出。

如果你不想转换非空白字符后的 TAB,请使用 -i 标记,如下所示。

$ expand -i ostechnix.txt

我们还可以设置每个 TAB 为指定数字的宽度,而不是 8(默认值)。

$ expand -t=5 ostechnix.txt

我们甚至可以使用逗号分隔指定多个 TAB 位置,如下所示。

$ expand -t 5,10,15 ostechnix.txt

或者,

$ expand -t "5 10 15" ostechnix.txt

有关更多详细信息,请参阅手册页。

$ man expand

unexpand 命令示例

正如你可能已经猜到的那样,unexpand 命令将执行与 expand 命令相反的操作。即它会将空格转换为 TAB。让我向你展示一些例子,以了解如何使用 unexpand 命令。

要将文件中的空白(当然是空格)转换为 TAB 并将输出写入标准输出,请执行以下操作:

$ unexpand ostechnix.txt

如果要将输出写入文件而不是仅将其显示到标准输出,请使用以下命令:

$ unexpand ostechnix.txt>output.txt

从标准输出读取内容,将空格转换为制表符:

$ unexpand

默认情况下,unexpand 命令仅转换初始的空格。如果你想转换所有空格而不是只是一行开头的空格,请使用 -a 标志:

$ unexpand -a ostechnix.txt

仅转换一行开头的空格(请注意它会覆盖 -a):

$ unexpand --first-only ostechnix.txt

使多少个空格替换成一个 TAB,而不是 8(会启用 -a):

$ unexpand -t 5 ostechnix.txt

相似地,我们可以使用逗号分隔指定多个 TAB 的位置。

$ unexpand -t 5,10,15 ostechnix.txt

或者,

$ unexpand -t "5 10 15" ostechnix.txt

有关更多详细信息,请参阅手册页。

$ man unexpand

在处理大量文件时,expandunexpand 命令对于用空格替换不需要的 TAB 时非常有用,反之亦然。


via: https://www.ostechnix.com/expand-and-unexpand-commands-tutorial-with-examples/

作者:sk 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

相关内容

美团AI破局,要王兴拿出千...
文|唐辰同学 美团要怎么缓解AI焦虑呢? 马年春节是验证各厂商A...
2026-03-07 19:51:23
AI浏览器被指抄袭代码,美...
3月3日,美团旗下AI浏览器Tabbit被指涉嫌抄袭陪读蛙项目代码...
2026-03-04 06:50:14
美团AI浏览器陷“抄袭”争...
(文/刘媛媛 编辑/周远方) 3月2日,美团旗下备受瞩目的AI团...
2026-03-03 20:19:57
美团Tabbit 浏览器回...
3月3日消息,美团旗下光年之外团队近日因新发布的Tabbit AI...
2026-03-03 15:50:15
开源IDE转USB适配器A...
2026-02-25 13:40:31 作者:狼叫兽 当前日期...
2026-02-25 15:50:25
Zettabyte与光宝科...
(全球TMT2026年2月14日讯)Zettabyte与光宝科技(...
2026-02-14 14:21:12

热门资讯

2020 年的 GitHub ... 距离 2020 年结束只剩下区区 24 天,我们即将结束魔幻的 2020 ,迎来新的一年,新的一年或...
开源新闻速递:openSUSE... 今日关注openSUSE 项目组的 Dominique Leuenberger 在他的周报中说:“这...
KDE4.11 Beta1 正...   KDE 项目工作组刚刚发布了 KDE Software Compilation 4.11 Bet...
Helix:高级 Linux ... 说到 基于终端的文本编辑器,通常 Vim、Emacs 和 Nano 受到了关注。这并不意味着没有其他...
如何在 Github 上创建一... 学习如何复刻一个仓库,进行更改,并要求维护人员审查并合并它。你知道如何使用 git 了,你有一个 G...
《Apex 英雄》正式可在 S... 《Apex 英雄》现已通过 Steam Deck 验证,这使其成为支持 Linux 的顶级多人游戏之...
使用时间序列数据,用开源工具助... InfluxData 是一个开源的时间序列数据库平台。下面介绍了它是如何被用于边缘应用案例的。收集到...
JStock:Linux 上不... 如果你在股票市场做投资,那么你可能非常清楚投资组合管理计划有多重要。管理投资组合的目标是依据你能承受...
Textual:为 Pytho... 快速入门使用 TextualPython 在 Linux 上有像 TkInter 这样的优秀 GUI...
硬核观察 #1245 Open... #1 OpenAI 悄然删除禁止将 ChatGPT 用于 “军事和战争” 的禁令在 1 月 10 日...