Shell 命令--cut--总结自《Linux Shell 脚本攻略》

时间:2022-08-17 15:38:06
cut是一个帮助我们将文本按列进行切分的小工具。它也可以指定分割每列的定界符。在cut的术语中,每列都是一个字段。
语法: cut -f FIELD_LIST filename  要打印多列,需要提供一个由逗号分隔的列号表作为-f选项的参数 。例如: $ cut -f 2,3 filename 这条命令将显示第2列和第3列
制表符是字段或列的默认定界符。没有定界符的行也会照原样被打印出来。要避免打印出这种不包含定界符的行,则可以使用cut的-s选项。

1)选项

-complement选项:

对提取的字段进行补集运算。例如打印除第3列之外所有的列 $ cut -f 3 --compelment student_data.txt

-d选项:

指定字段的定界符 例如: cut -f2 -d ";" delimited_data.txt
指定字段的字符或字节范围

记   法                                               范                围
N- 从第N个字节,字符或字段到行尾
N-M 从第N个字节,字符或字段到第M个(包括第M个在内)字节,字符或字段
-M 从第1个字节,字符或字段到第M个(包括第M个在内)字节,字符或字段
用上面介绍的记法,再结合下列选项将某个范围的字节或字符指定为字段
-b 表示字节,可作为计数单位
-c 表示字符
-f 表示定义字段
例如打印第1个到第5个字符 $cut -c1-5 range_fields.txt
当用-b或-c提取多个字段是,必须使用  --output-delimiter(指定输出定界符),否则,你就没法区分不同的字段了
例如: $ cut range_fields.txt -c1-3,6-9  --output-delimiter ","