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
……