shell字符串截取之cut命令

来源:互联网 发布:sparkle mac 编辑:程序博客网 时间:2024/05/01 03:33

cut命令主要是接受三个定位方法:
第一,字节(bytes),用选项-b
第二,字符(characters),用选项-c
第三,域(fields),用选项-f
一、cut -b
这里写图片描述
如上图所示,-b后边可以设定截取哪个字节
-b支持形如3-5的写法,而且多个定位之间用逗号隔开就可以:
这里写图片描述
需要注意的是-b选项,执行此命令时,cut会先把-b后面所有的定位进行从小到大排序,然后再提取。所以千万不能颠倒定位的顺序。例:
这里写图片描述
-b -4表示从第一个字节到第三个字节,而-b 4-表示从第三个字节到行尾,
-b -4,4-表示从头输到尾
这里写图片描述

二、cut -c
cut -c 1-4代表输出字符互传1-4之间的字符
这里写图片描述
cut -c 1,4代表输出字符串中第一个和第四个字符
cut -c 1-4代表输出字符互传1-4之间的字符
这里写图片描述
有一个和-b 相似的情况:
这里写图片描述
输出结果相同,那么有什么区别,如下图所示:
这里写图片描述
由于-b 是以字节为单位的,所以在输出汉子的时候就不行了,而-c是以字符为单位的,完全可以输出成功。
三、cut -f
为什么会有“域”的提取呢,因为刚才提到的-b和-c只能在固定格式的文档中提取信息,而对于非固定格式的信息则束手无策。这时候“域”就派上用场了。
已/etc/passwd中的内容为例:(这里取前五行)
这里写图片描述
截取第一个域中的字符串:(-d选项设定以:为间隔符,-f 后设定哪个域)
这里写图片描述
当然也可以进行如下操作:
这里写图片描述

原创粉丝点击