吐司面包烤好后,可以切成不同宽度的面包片。文本也可以按照不同的标准分割成列,Linux提供了cut命令,可以按照指定的分隔符,将文本特定的列切割出来。
取出文本中特定的列
cut option [file]
-b 选择指定的字节 -c 选择指定的字符 -f 选择指定的字段 -d 指定分隔符(默认是制表符)
cut的用法比较灵活,主要体现在其选项上,尤其上面几个常用的选项,一定要牢记,才能用好cut命令。下面以一个虚拟的文件,演示cut的用法:
[peter@ibi98 prac]$ cat demo.txt 1 2 3 4 5;6;7 a b c d e;f;g [peter@ibi98 prac]$ cut -f1 demo.txt 1 2 3 a b c [peter@ibi98 prac]$ cut -f2-3 demo.txt 4 5;6;7 d e;f;g [peter@ibi98 prac]$ cut -f1,3 demo.txt 1 2 3 5;6;7 a b c e;f;g [peter@ibi98 prac]$ cut -b3-5 demo.txt 2 3 b c [peter@ibi98 prac]$ cut -d';' -f2 demo.txt 6 f
文件demo.txt中,1与2之间和2与3之间是空格,3与4之间和4与5之间是制表符,5与6之间和6与7之间是分号。cut命令不使用-d选项时,分隔符是默认的制表符。
值得注意的是,-b和-c选项在处理英文和数字(一个字符占一个字节)时没有区别,但在处理中文时由于每个汉字字符占2个字节(GB2312编码)或3-4个字节(UTF-8编码),-b选项有可能出现乱码。
字段的写法有以下几种(n,m为自然数,且n<m):
n 第n个字段 -n 第1个字段至第n个字段 n-m 第n个字段至第m个字段 m- 第m个字段至最后一个字段 n,m 第n个字段和第m个字段
当然,上面的写法也可以组合起来,如您可以这样写:-f1,3-5,7-,表示截取第1,3,4,5,7和7后面所有的字段。