这命令就是在将 [tab] 按键转成空格键:
[root@www ~]# expand [-t] file 选项与参数: -t :后面可以接数字。一般来说,一个 tab 按键可以用 8 个空格键取代。 我们也可以自行定义一个 [tab] 按键代表多少个字符呢! 范例一:将 /etc/man.config 内行首为 MANPATH 的字样就取出;仅取前三行; [root@www ~]# grep '^MANPATH' /etc/man.config | head -n 3 MANPATH /usr/man MANPATH /usr/share/man MANPATH /usr/local/man # 行首的代表标志为 ^ ,这个我们留待下节介绍!先有概念即可! 范例二:承上,如果我想要将所有的符号都列出来?(用 cat) [root@www ~]# grep '^MANPATH' /etc/man.config | head -n 3 |cat -A MANPATH^I/usr/man$ MANPATH^I/usr/share/man$ MANPATH^I/usr/local/man$ # 发现差别了吗?没错~ [tab] 按键可以被 cat -A 显示成为 ^I 范例三:承上,我将 [tab] 按键配置成 6 个字符的话? [root@www ~]# grep '^MANPATH' /etc/man.config | head -n 3 | > expand -t 6 - | cat -A MANPATH /usr/man$ MANPATH /usr/share/man$ MANPATH /usr/local/man$ 123456123456123456..... # 仔细看一下上面的数字说明,因为我是以 6 个字符来代表一个 [tab] 的长度,所以, # MAN... 到 /usr 之间会隔 12 (两个 [tab]) 个字符喔!如果 tab 改成 9 的话, # 情况就又不同了!这里也不好理解~您可以多配置几个数字来查阅就晓得!
expand 也是挺好玩的~他会自动将 [tab] 转成空格键~所以,以上面的例子来说, 使用 cat -A 就会查不到 ^I 的字符啰~此外,因为 [tab] 最大的功能就是格式排列整齐! 我们转成空格键后,这个空格键也会依据我们自己的定义来添加大小~ 所以,并不是一个 ^I 就会换成 8 个空白喔!这个地方要特别注意的! 此外,您也可以参考一下 unexpand 这个将空白转成 [tab] 的命令功能啊! ^_^
参考资料:http://vbird.dic.ksu.edu.tw/linux_basic/0320bash.php#expand