websyhg 发表于 2018-5-21 10:22:57

Linux shell 之cut

  一、概述
  cut是将文本文件按列分割的工具,并且可以指定列与列之间的定界符。每一列称为一个字段。

  制表符\t 是默认的定界符,如何一行中没有定界符,将原样输出。

  

  二、具体使用方法
  (1)从文本文件中提取指定列, field_list是由列号组成作为-f的参数,列号从1开始,使用逗号隔开
       cut -f field_list filename  eg.

  提取文件file的第2列和第3列
         cut -f 2,3 file  从标准输入中获得数据,进行分割
         cat file | cut -f 2,3  默认没有定界符的行将显示,使用-s选项去掉没有定界符的行
          cut -f 3,4 file -s#没有制表符的行将不再显示  

  (2)指定排除某些列(需要提取的列很多,则进行补集运算),field_list为需要排除的字段。
      cut -f field_list filename --complement  eg.

  提取file文件中除了第2列和第3列以外的列
         cut -f 2,3 file --complement  

  (3)指定定界符 -d
      cut -f field_list -d delimiter filename  eg.

  file文件中的每一字段由分号隔开,提取第2个字段
          cut -f 2 -d ";" file  

  (4)将一串字符作为字段来显示

记法范围N-从第N个字节、字符或字段到行尾
N-M从第N个字节、字符或字段到第M个(包括第M个在内)字节、字符或者字段
-M
第1个字节、字符或字段    到第M个(包括第M个在内)字节、字符或字段-b字节-c字符-f字段  eg.

  打印文件中的第3到第5个字符
    cut -c 3-5 file  打印文件中的前2个字符
      cut -c -2 file  提取多个字段是,使用--output-delimiter 指定定界符,否则不能区分多个字段
   cut -c 3-5,6-9 file --output-delimiter ","  
页: [1]
查看完整版本: Linux shell 之cut