当前位置: 首页 > 科技观察

expand和unexpand命令示例教程

时间:2023-03-12 21:38:44 科技观察

本指南通过实际示例解释了两个Linux命令expand和unexpand。出于好奇,expand和unexpand命令用于将文件中的TAB字符替换为空格,反之亦然。在MS-DOS中还有一个名为expand的命令,用于解压缩压缩文件。但是Linux的expand命令只是将TAB转换为空格。这两个命令是GNUcoreutils包的一部分,由DavidMacKenzie编写。出于演示目的,我将在本文中使用名为ostechnix.txt的文本文件。下面给出的所有命令都在ArchLinux中进行了测试。扩展命令示例正如我前面提到的,扩展命令用空格替换文件中的TAB字符。现在,让我们将ostechnix.txt中的制表符转换为空格并将结果写入标准输出:$expandostechnix.txt如果您不想在标准输出上显示结果,只需将其写入另一个文件,如下所示。$expandostechnix.txt>output.txt我们还可以将标准输入中的制表符转换为空格。为此,只需运行不带文件名的expand命令:$expand只需输入文本并按回车键即可将制表符转换为空格。按CTRL+C退出。如果您不想在非空白字符后转换制表符,请使用-i标志,如下所示。$expand-iostechnix.txt我们还可以将每个TAB设置为指定数字的宽度,而不是8(默认值)。$expand-t=5ostechnix.txt我们甚至可以指定多个用逗号分隔的TAB位置,如下所示。$expand-t5,10,15ostechnix.txt或$expand-t"51015"ostechnix.txt有关详细信息,请参阅手册页。$manexpandunexpand命令示例您可能已经猜到,unexpand命令将执行与expand命令相反的操作。即它将空格转换为制表符。让我向您展示一些示例,以了解如何使用unexpand命令。要将文件中的空格(当然是空格)转换为制表符并将输出写入标准输出:$unexpandostechnix.txt如果要将输出写入文件而不是仅将其显示到标准输出,请使用以下命令:$unexpandostechnix.txt>output.txt从标准输出读取,将空格转换为制表符:$unexpand默认情况下,unexpand命令仅转换初始空格。如果要转换所有空格而不仅仅是行首的空格,请使用-a标志:$unexpand-aostechnix.txt仅转换行首的空格(注意它会覆盖-a):$unexpand--first-onlyostechnix.txt使得有多少个空格用TAB代替,而不是8个(-a会启用):$unexpand-t5ostechnix.txt同样,我们可以用逗号分隔指定位置多个标签。$unexpand-t5,10,15ostechnix.txt或者,$unexpand-t"51015"ostechnix.txt有关详细信息,请参见手册页。$manunexpand在处理大量文件时,expand和unexpand命令对于用空格替换不需要的TAB非常有用,反之亦然。