本文通过实际示例解释两个Linux命令,即Expand和Unexpand,这两个命令用于替换具有SPACE字符的文件中的TAB字符,反之亦然。在MS-DOS中还有一个名为“Expand”的命令,用于扩展压缩文件,但Linux Expand命令只是将选项卡转换为空格,这两个命令是GNU coreutils的一部分,由David MacKenzie编写。出于演示目的,我将在本文中使用名为“ywnz.txt”的文本文件,下面给出的所有命令都在Arch Linux操作系统中进行了测试。
Expand命令示例 Expand命令用SPACE字符替换文件中的TAB字符。 现在,让我们将tabs转换为ywnz.txt文件中的空格,并使用命令将结果写入标准输出: $ expand ywnz.txt 如果你不想在标准输出中显示结果,只需将其上传到另一个文件,如下所示: $ expand ywnz.txt>output.txt 我们还可以将标签转换为空格,从标准输入读取,为此,只需运行“expand”命令而不提及源文件名: $ expand 只需输入文本并按Enter键将选项卡转换为空格,按CTRL+C退出。 如果不想在非空白后转换制表符,请使用-i参数,如下所示: $ expand -i ywnz.txt 我们还可以选项卡分隔一定数量的字符,而不是8(默认值): $ expand -t=5 ywnz.txt 你甚至可以用逗号分隔多个标签位置,如下所示: $ expand -t 5,10,15 ywnz.txt 或者: $ expand -t "5 10 15" ywnz.txt 有关更多详细信息,请参阅手册页: $ man expand
Unexpand命令示例 Unexpand命令将执行与Expand命令相反的操作,即它会将SPACE charatcers转换为TAB字符,让我向你展示一些示例,以了解如何使用Unexpand命令。 要将文件中的空格(当然是空格)转换为制表符并将输出写入标准输出,请执行以下操作: $ unexpand ywnz.txt 如果要将输出写入文件而不是仅将其显示到stdout,请使用以下命令: $ unexpand ywnz.txt>output.txt 将空格转换为制表符,从标准输出读取: $ unexpand 默认情况下,Unexpand命令仅转换初始空白,如果要转换所有空格而不是仅使用初始空格,请使用-a参数: $ unexpand -a ywnz.txt 仅转换前导空白序列(请注意它覆盖-a): $ unexpand --first-only ywnz.txt 标签分隔一定数量的字符,而不是8(启用-a): $ unexpand -t 5 ywnz.txt 同样,我们可以提到多个标签位置,逗号分隔如下: $ unexpand -t 5,10,15 ywnz.txt 或者: $ unexpand -t "5 10 15" ywnz.txt 有关更多详细信息,请参阅手册页: $ man unexpand
结论 以上就是Expand和Unexpand命令在Linux下的使用示例,在处理大量文件时,Expand和Unexpand命令对于用SPACE字符替换不需要的TAB字符非常有用,反之亦然。
相关主题 |