Linux命令之cut

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只擅长处理“以一个字符间”的
               文本内容。
原文地址:https://www.cnblogs.com/zhoujingyu/p/4948051.html