标签:
cut:文件的每一行剪切字节、字符和字段并将这些字节、字符和字段写至标准输出。如果不指定 File 参数,cut 命令将读取标准输入。必须指定 -b、-c 或 -f 标志之一。
主要参数:
-b(byte):以字节为单位进行分割,一个空格算一个字节,一个汉字算三个字节;
-c(char):以字符为单位进行分割,中文字符和空格都算一个字符;
-d:自定义分割符,默认为制表符,要与-f一起使用,当以一个空格为分割符的时候,要用双引号或单引号将空格括起来;
-f(field):与-d一起使用,制定显示哪个区域;
-n:取消分割多字节字符。仅和-b标志一起使用。如果字符的最后一个字节落在由
-b 标志的 List 参数指示的<br />范围之内,该字符将被写出;否则,该字符将被排除。
命令用法:
cut -b list [-n] [file ...]
cut -c list [file ...]
cut -f list [-d delim][-s][file ...]
list表示-b、-c、-f操作范围,-n常常表示具体数字;
file表示的自然是要操作的文本文件的名称;
file表示的自然是要操作的文本文件的名称;
-s表示不包括那些不含分隔符的行(这样有利于去掉注释和标题);
上面三种方式中,表示从指定的范围中提取字节(-b)、或字符(-c)、或字段(-f)。
例:
1、[root@localhost ~]#date |cut -b 1-4:按字节分割当前日期,取当前日期
的前4个字节;
2、[root@localhost ~]#echo "2,1,3,2,5" | cut -d, -f1:按“,”分割"2,1,3,2,5"字符串,取第一个域中的字符串;
输出结果:2
3、[root@localhost ~]#echo "2,1,3,2,5" | cut -d, -f1-:按“,”分割字符串,取从第1个域到结尾,结果的域之间会用“,”隔开;
输出结果:2,1,3,2,5
4、[root@localhost ~]#echo "2,1,3,2,5" | cut -d, -f1-3:按“,”分割字符串,取从第1个域到第3个域,结果的域之间会用“,”隔开;
输出结果:2,1,3
5、[root@localhost ~]#echo "2,1,3,2,5" | cut -d, -f1-3,5:按“,”分割字符,取从第1个域到第3个域和第5个域,结果的域之间会用“,”隔开;
输出结果:2,1,3,5
6、[root@localhost ~]#echo "2,1,3,2,5" | cut -d, -f-3:按“,”分割字符,取第1个到第3个域,结果的域之间会用“,”隔开;
输出结果:2,1,3
7、[root@localhost ~]# echo "2,1,3,2,5" | cut -d, -f5,1-2:按“,”分割字符,取从第1个域到第2个域和第5个域,结果的域之间会用“,”隔开。cut会先把-b后面所有的定位进行从小到大排序,然后再提取;
输出结果:2,1,3,5
8、[root@localhost ~]# echo "2,1,3,2,5" | cut -d, -f-2,4-:按“,”分割字符,取第1个域到第2个域和第4个域到最后一个域,结果的域间用“,”隔开。
输出结果:2,1,2,5
cut有哪些缺陷和不足:如果文件里面的某些域是由若干个空格来间隔的,那么用
cut就有点麻烦了,因为cut只擅长处理“以一个字符间”的
文本内容。
Linux命令之cut
标签:
原文地址:http://www.cnblogs.com/zhoujingyu/p/4948051.html