linux cut命令

cut是一个将文本按列进行切分的小巧工具,也可以指定分隔每列的定界符。在cut的术语中,每列被称为一个字段。

cut基本特性

(1)要提取特定的字段或列,可以使用下面的语法:
cut -f FIELD_LIST filename
FILELD_LIST是需要显示的列。它由列号组成,彼此之间用逗号分隔。例如:
$ cut -f 2,3 filename
这条命令将显示第2列和第3列。

(2)cut也能够从stdin 中读取输入文本。
制表符是字段或列的默认定界符。对于没有定界符的行,会将该行照原样打印出来。如果不想打印出这种不包含定界符的行,则可以使用cut 的-s选项。一个cut命令的例子如下:
$ cat student_data.txt
No Name Mark Percent
1 Sarath 45 90
2 Alex 49 98
3 Anu 45 90
$ cut -f1 student_data.txt
No
1
2
3
(3)提取多个字段
$ cut -f2,4 student_data.txt
Name Percent
Sarath 90
Alex 98
Anu 90
(4)要打印多列,需要提供一个由逗号分隔的列号列表作为-f 选项的参数
(5)也可以用--complement选项对提取的字段进行补集运算。假设有多个字段,你希望打印出除第3列之外的所有列,则可以使用:
$ cut -f3 --complement student_data.txt
No Name Percent
1    Sarath  90
2    Alex    98
3    Anu     90
(6)要指定字段的定界符,使用-d选项
$ cat delimited_data.txt
No;Name;Mark;Percent
1;Sarath;45;90
2;Alex;49;98
3;Anu;45;90
$ cut -f2 -d";" delimited_data.txt
Name
Sarath
Alex
Anu

cut的其他特性
cut命令有一些选项可以将一串指定的字符作为列来显示。
指定字段的字符或字节范围
假设不依赖定界符,但需要通过将字段定义为一个字符范围(行首记为0)来进行字段提取。这也可以通过cut来实现。

                                                          表1

记法
范围
N-
从第N个字节,字符或字段到行尾
N-M
从第N个字节,字符或字段到第M个(包括M个在内)字节、字符或字段
-M
第1个字节,字符或字段到第M个(包括M个在内)字节、字符或字段
用上面介绍的记法,结合下列选项将字段指定为某个范围内的字节或字符:
  • -b表示字节
  • -c表示字符
  • -f用于定义字段
例如:
$ cat range_fields.txt
abcdefghijklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyz
你可以打印第1个到第5个字符:
$ cut -c1-5 range_fields.txt
abcde
abcde
abcde
abcde
打印前2个字符:
cut range_fields.txt -c -2
ab
ab
ab
ab
若要用字节作为计数单位,可以将-c替换成-b。
在使用-c、-f 和-b时,我们可以指定输出定界符:
--output-delimiter "delimiter string"
当用-b或-c提取多个字段时,必须使用--output-delimiter,否则,将无法区分不同的字段。
$ cut range_fields.txt -c1-3,6-9 --output-delimiter “,”
abc,fghi
abc,fghi
abc,fghi
abc,fghi


  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值