Cut

名称cut - remove sections from each line of files

命令格式cut [OPTION]... [FILE]...

功能简述cut是一个选区命令就是将一段数据进行分析取出我们想要的。一般来说选区信息通常是针对“行”来进行的。Cut命令从文件的每一行剪切字节、字符、字段并将这些字节、字符、字段标准输出。没有指定文件就以标注输入。

[内容操作命令、截取命令]

命令参数

-b      以字节为单位进行分割

-c      以字符为单位进行分割

-d      自定义分隔符默认为[tab]制表符。并且cut只允许分隔符是一个字符

-f       只选择指定段的内容。于-d一起使用指定显示哪个区域

-n      取消分割多字节字符。仅和-b标志一起使用。如果字符的最后一个字节落在由-b标志的list参数指定的
范围内该字符将被写出否则该字符将被排除

使用实例

使用字节作为分隔

[root@LiWenTong tmp]# cat log1

root    pts/0        2013-04-29 00:52(192.168.222.1)

root    pts/0        2013-04-29 00:52(192.168.222.1)

root    pts/0        2013-04-29 00:52(192.168.222.1)

只取出第3、10个字节

[root@LiWenTong tmp]# cut -b 3,10 log1

op

op

op

op

op

取前3个字节

[root@LiWenTong tmp]# cut -b -3 log1

roo

roo

取前三个字节之后的所有

[root@LiWenTong tmp]# cut -b 3- log1

ot    pts/0        2013-04-29 00:52(192.168.222.1)

ot    pts/0        2013-04-29 00:52(192.168.222.1)

以字符为分隔符

[root@LiWenTong tmp]# cut -c 3- log1----->虽说和-c看起来的效果一样那是字母都是单字节字符如果遇到双字节字符或者多字节字符就会有效果。比如说中文遇见多字节字符也可以使用-n来告诉cut不要讲多字节字符分开来切。

ot    pts/0        2013-04-29 00:52(192.168.222.1)

ot    pts/0        2013-04-29 00:52(192.168.222.1)


以自定义的分隔符来进行提取提取哪几个字段

[root@LiWenTong tmp]# head -n 5 /etc/passwd

root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

adm:x:3:4:adm:/var/adm:/sbin/nologin

lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

[root@LiWenTong tmp]# head -n 5 /etc/passwd | cut -d : -f 1,2

root:x              --->自定义分隔符为 然后提取第一、二个域

bin:x

daemon:x

adm:x

lp:x

定义以空格为分割符提取内容。-d  difine  -f fields字段

针对分隔符是空格的话遇上连续的空格是不会统一算成一个空格的。还是会一个一个算。那怎么才能算到一起呢不懂哈哈哈哈。awk可以解决,去看我的awk吧。

[root@linux-lwt tmp]# cut -d ' '  -f 1,6 1.txt  

1

1  

[root@linux-lwt tmp]# cat 1.txt

1      2     3  

1        2    3  

-----------------------------后续自我小结------------------

cut就已经能够针对列来做内容的截取了还可以定义自己的分隔符-d。选择要截取哪个列-f。这个就是一个内容操作命令之前接上内容显示命令。或者后面接上内容文件也是可以的。目前如果说这个命令要变化的话就是加上其他命令来灵活运用咯。在列的简单的截取上面应该也是很方便使用的。

------------------------------------------------------------