Linux脚本攻略学习笔记12

18 篇文章 0 订阅


    今天来说说cut。我们可能需要按列,而不是按行切分文件。假设我们有一个文本文件,其中按行包含了学生的报表信息。我们需要将学生的姓名或者是第n列提取到另一个文件,也可能需要将其中两列甚至更多。那么就可能用到cut。

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

(1) 要提取特定的字段或列,可以使用下面的语法:

$cut -f FIELD LIST filename
FIELD LIST是需要显示的列。它由列号组成,彼此之间用逗号分隔。例如:

$cut -f 2,3 filename
这条命令将显示第2列和第3列。

举个栗子:比如现在有一个文件,文件内容如下:



要显示第二列和第三列即:


我们也可以用--complement选项对提取的字段进行补集运算。假设有多个字段,你希望打印出除第三列之外的所有列,则可以使用:

$cut -f3 --complement student_data.txt

(2)要指定使用字段的定界符,使用-d选项:


比如碰到上述文件,可以使用-d参数



补充内容:

(1)指定字段的字符或者字节范围

假设我们不依赖定界符,但需要通过将字段定义为一个字符范围(行首为0)来进行字段提取,这种需求也可以使用cut来实现。


用上面介绍的方法,结合下列选项将字段指定为某个范围内的字节或字符:

-b 表示字节;

-c表示字符;

-f用于定义字段。

定义下面文件:


我们可以打印第1个到第5个字符:

$ cut -c1-5 range_fields.txt


也可以打印前两个字符:


若要用字节作为计数单位,可以将-c替换成-b。

在使用-c,-f和-b时,我么可以指定指定输出定界符

--output-delimiter "delimiter string"
当用-b或者-c提取多个字段时,必须使用--output-delimiter,否则,你就没法区分不同的字段了。例如:









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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值