展开命令不起作用

展开命令不起作用

我正在尝试使用扩展命令将所有制表符转换为空格。

命令: cat department.txt

输出 :

1           QA 
2           DEV
3           OPS

在执行扩展department.txt时;输出仍然相同。

我已使用 od -c 验证我的文件包含制表符。有人可以解释为什么扩展不起作用吗?

更新:正如穆鲁在下面的评论中指出的那样;我对扩展命令有错误的期望,我期望制表符被转换为单个空格;这引起了混乱。 Expand 命令将制表符转换为等效的空格。

答案1

要将制表符转换为单个空格,您仍然可以使用expand, 并将制表位设置为 1 而不是默认的 8:

$ expand foo
1       QA
2       DEV
3       OPS
$ expand -t1 foo
1 QA
2 DEV
3 OPS

但是,这仍然会将连续的选项卡扩展为单独的空格:

$ vim foo
$ expand foo
1               QA
2               DEV
3               OPS
$ expand -t1 foo
1  QA
2  DEV
3  OPS

根据您想要的行为,您可以使用它或tr

$ tr -s '\t' ' ' < foo
1 QA
2 DEV
3 OPS

相关内容