linux expand命令


expand

回到顶部

expand将tab键转成空格键:

              [peter@study ~]$ expand [-t] file
            
选项与参数: -t:后面可以接数字。一般来说,一个 tab 按键可以用 8 个空格键取代。 我们也可以自行定义一个 [tab] 按键代表多少个字符呢!
将 /etc/man_db.conf 内行首为 MANPATH 的字样就取出;仅取前三行;
              [peter@study ~]$ grep '^MANPATH' /etc/manpath.config | head -n 3
              MANPATH_MAP	/bin			/usr/share/man
              MANPATH_MAP	/usr/bin		/usr/share/man
              MANPATH_MAP	/sbin			/usr/share/man
            
行首的代表标志为^,这个我们留待下节介绍!先有概念即可!
用cat将所有的符号都列出来:
              [peter@study ~]$ grep '^MANPATH' /etc/manpath.config | head -n 3 | cat -A
              MANPATH_MAP^I/bin^I^I^I/usr/share/man$
              MANPATH_MAP^I/usr/bin^I^I/usr/share/man$
              MANPATH_MAP^I/sbin^I^I^I/usr/share/man$
            
tab键被cat -A显示为^I
将tab键设定成6个字符:
              [peter@study ~]$ grep '^MANPATH' /etc/manpath.config | head -n 3 | expand -t 6 - | cat -A
              MANPATH_MAP /bin              /usr/share/man$
              MANPATH_MAP /usr/bin          /usr/share/man$
              MANPATH_MAP /sbin             /usr/share/man$
            
上面是以6个字符来代表一个tab的长度,所以MAN...到/usr之间会隔12(两个tab)个字符!如果tab改成9,情况就又不同了!
expand自动将tab转成空格键,所以,以上面的例子来说, 使用 cat -A 就会查不到 ^I 的字符。 此外,因为tab最大的功能就是格式排列整齐! 我们转成空格键后,这个空格键也会依据我们自己的定义来增加大小~ 所以,并不是一个^I就会换成8个空白喔! 这个地方要特别注意的哩! 此外,您也可以参考一下unexpand这个将空白转成tab的命令功能!

本文由initroot编辑整理,转载请注明www.initroot.com

100次点赞 100次阅读