Linux系统shell程序设计(三)-cut命令详解(理论+实战)

一、基本用法

在Linux或者UNIX中,许多数据都是以文本文件的形式存在。因此,用户经常需要对这些文件进行提取处理。cut的工作就是“剪”,具体来说就是在文件中负责剪切数据用的。一般情况下,提取信息通常是针对一行一行来分析的。

Shell中的cut命令从文件的每一行剪切字节、字符和字段并将这些字节、字符和字段输出。

cut命令的基本语法如下:

filename 参数是要进行剪切提取的文件,如果不指定filename参数,cut命令将读取标准输入。

注意:cut命令处理的信息是以行为单位的。

选项参数

说明

-b

以字节(byte)为单位截取固定字节区间。

-c

以字符(char)为单位截取固定字符区间。

-d

分隔符,按照指定分隔符分割列,默认为制表符。

-f

-d一起使用,依据-d的分割字符将一段信息分割成好几段,用-f提取出第几段:

列号,提取第几列。

--complement

用于排除所指定的字段。

--output-delimiter

更改输出内容的分隔符。

-n

该选项和-b一起使用,表示不分割占多个字节的字符。比如说一个汉字占多个字符,

这个汉字是不会分割成多个字节进行截取的。

二、常用示例

当我们执行w命令时,会输出类似如下的内容:
 如果我们想提取每一行的第4个字节,就可以使用cut进行处理:

 -b选项的简单示例

如果我们想提取一下第1,4,11个的字节,那么怎么做呢?继续使用-b选项。

 如果我们想稍稍美化一下它的输出,那么怎么做呢?使用--output-delimiter选项。

 如果我们想提取一下第1到4,和第11个的字节,那么怎么做呢?继续使用-b选项

 基于上面的例子,我们能否用-c的字符功能提取呢?答案是可以的。

问题:那么-b-c在什么情况下是不可以的呢?

 可能有人已经想到了答案:对中文的处理!-n选项排上用场了😀

 

其实cut命令我们平时常用的还是-d, -f选项,接下来我们来一起学习一下它们吧。

  • -d: 后面接分隔符。用处是将一行数据以什么字符进行分割。
  • -f:依据-d的分隔符将一段信息分割成数段,用该选项指定提取出第几段。

说明:

  • -d和-f必须一起使用,否则命令将无法正确执行;
  • -f后面接的字符分以下几种情况:

字符

说明

N

选取第N段数据输出,从1开始计数。

N-

从第N段数据开始直到最后一段。

N,M

截取NM两个字段的数据。

N-M

从第N段数据开始直到第M段。

-M

从第1段直到M段。

我们来看这样的一个例子:查看/etc/passwd文件的不同字段的几种情况。

截取第1列和第7列的数据:
 截取第1列到第2列的数据:

 截取第1列的数据:

 截取从第三个字段(包括第三个字段)以后的数据:

 截取从第一个字段开始到第五个字段的数据:

 可以通过选项--output-delimiter指定连接的字符:

 排除所指定的字段:下面的代码中,打印所有字段,除/etc/passwd文件中的第二个字段:

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

技术瘾君子1573

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值