【linux】cut的基本使用

本文介绍了Unix/Linux系统中的文本处理工具cut的基本使用方法,包括按列切割、指定分隔符、选取特定列、字符范围选择以及与其他工具如awk配合处理复杂需求。
摘要由CSDN通过智能技术生成

 cut主要用于按列切分文本行,并输出指定的字段,这是类unix系统中常用的文本处理工具。

基本使用

首先随便去网上找个文本或者列表文件

如果使用cat看文本的话就是这样的

sh-3.2# cat data.csv 
Name,Age,City,Salary
Alice,30,New York,70000
Bob,25,Los Angeles,55000
Charlie,35,Chicago,80000
Diana,28,Miami,62000
Evan,40,Boston,95000
Fiona,22,Seattle,48000
George,31,San Francisco,73000
Hannah,29,Austin,68000
Ian,27,Denver,60000
Jane,32,Atlanta,71000

-d 指定分隔符

从上面的文本可以看到分隔符是 “,” 所以用-d指定 “,” 的话就能够按照“,”把一行文字分割成4份

但是-d 不直接使用,后面要和-f 等一起配合使用

sh-3.2# cut -d',' data.csv 
usage: cut -b list [-n] [file ...]
       cut -c list [file ...]
       cut -f list [-s] [-w | -d delim] [file ...]

-f 选取列

和awk的$1 $2 $3...一样,cut也提供了选取列的功能 

根据上述的数据,要想选出所有的名字的话就要选择第一列

也就是 -f1

sh-3.2# cut -f1 -d',' data.csv 
Name
Alice
Bob
Charlie
Diana
Evan
Fiona
George
Hannah
Ian
Jane

注意 -d虽然不能直接使用,但是如果不指定-d 参数的话,就会无视掉逗号

sh-3.2# cut -f1 data.csv 
Name,Age,City,Salary
Alice,30,New York,70000
Bob,25,Los Angeles,55000
Charlie,35,Chicago,80000
Diana,28,Miami,62000
Evan,40,Boston,95000
Fiona,22,Seattle,48000
George,31,San Francisco,73000
Hannah,29,Austin,68000
Ian,27,Denver,60000
Jane,32,

还可以提取多列

sh-3.2# cut -d',' -f2-4 data.csv
Age,City,Salary
30,New York,70000
25,Los Angeles,55000
35,Chicago,80000
28,Miami,62000
40,Boston,95000
22,Seattle,48000
31,San Francisco,73000
29,Austin,68000
27,Denver,60000
32,Atlanta,71000

-c 选择提取字符的范围

对于每一行,如果想要提取第几到第几个字符的话可以用-c

比如对于每一行,想要第1到第3个字符就行了

sh-3.2# cut -c1-3 data.csv 
Nam
Ali
Bob
Cha
Dia
Eva
Fio
Geo
Han
Ian
Jan

这里有个不灵活的地方就是不能用 -c 指定字符范围后 再用-f 指定第几列

在cut中 -c 是单独使用的

也就是说,如果想要截取工资这一列的前三位的信息的话,单单使用cut就不够了

cut -f4 -c1-3 data.csv

甚至上面这种写法还是错的

所以可以用awk配合管道把第4列传输给cut作为行

sh-3.2# awk -F, '{print $4}' data.csv 
Salary
70000
55000
80000
62000
95000
48000
73000
68000
60000
71000

然后使用-c 把 从管道传输过来的 “行” 剪切出1-3字符位的部分

sh-3.2# awk -F, '{print $4}' data.csv | cut -c1-3
Sal
700
550
800
620
950
480
730
680
600
710

这样就知道大家工资的前三位了

总的来说cut工具很简单,处理有规律的文本不需要什么正则表达

但是稍微复杂一些的功能就要和其他工具配合使用

  • 11
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值