【Linux】字符转换命令expand

  这命令就是在将 [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

posted @ 2014-05-13 15:12  NW_KNIFE  阅读(3032)  评论(0编辑  收藏  举报