17 Shell Script cut命令

cut命令

一、cut命令

​ cut中文翻译是剪的意思,他就是负责剪切文本,cut是以每一行为一个处理对象的,这种机制和sed是一样的

​ cut命令用来显示行中的指定部分,删除文件中指定字段。cut经常用来切割文件的内容

二、cut定位

​ 使用cut命令需要考虑cut的定位,这样才能使用cut来剪切数据,cut命令主要是接受三个定位方法:

​ 字节(bytes),用选项-b

​ 字符(characters),用选项-c

​ 域(fields),用选项-f

[root@localhost ~]# cat test01.txt 
hello 1
hello 2
hello 3
hello 4
hello 5
hello 6

一)以“字节”定位

​ cut命令如果使用了-b选项,那么执行此命令时,cut会先把-b后面所有的定位进行从小到大排序,然后再提取

# 获取第三个字
[root@localhost ~]# cut -b3 test01.txt
l
l
l
l
l
l

# 提取第2个到第5个
[root@localhost ~]# cut -b2-5 test01.txt
ello
ello
ello
ello
ello
ello

# 回先排序,在提取
[root@localhost ~]# cut -b5,2,3 test01.txt
elo
elo
elo
elo
elo
elo

# 提取第1个到第3个和第7个
[root@localhost ~]# cut -b1-3,7 test01.txt
hel1
hel2
hel3
hel4
hel5
hel6

# 取第2个到第5个
[root@localhost ~]# cut -b 2-5 test01.txt 
ello
ello
ello
ello
ello
ello

​ 获取中文,发现为空,因为一个中文占2个字节

[root@localhost ~]# cut -b1 test02.txt  






二)以“字符”定位

​ 例如:在中文情况下,获取文字需要2个字节获取

# 获取第3到5个
[root@localhost ~]# cut -c 3-5 test01.txt
llo
llo
llo
llo
llo
llo

# 使用字符获取
[root@localhost ~]# cut -c1 test02.txt
星
星
星
星
星

三)以“域”定位

​ 为什么会有“域”的提取呢,因为刚才提到的-b和-c只能在固定格式的文档中提取信息,而对于非固定格式的信息则束手无策。这时候“域”就派上用场了

​ 查看文本(/etc/passwd)内容你会发现,它并不像上面的例子那样输出信息那样具有固定格式,而是比较零散的排放。但是,冒号在这个文件的每一行中都起到了非常重要的作用,冒号用来隔开每一个项

[root@localhost ~]# cut -d: -f1 /etc/passwd
root
bin
daemon
adm
lp
sync
shutdown
……
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值