您的位置:首页 > 其它

[一文一命令]cut命令详解

2013-12-20 19:08 288 查看

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参数指定的<br/>范围内该字符将被写出否则该字符将被排除
使用实例
使用字节作为分隔
[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。这个就是一个内容操作命令之前接上内容显示命令。或者后面接上内容文件也是可以的。目前如果说这个命令要变化的话就是加上其他命令来灵活运用咯。在列的简单的截取上面应该也是很方便使用的。
------------------------------------------------------------

本文出自 “从头开始” 博客,请务必保留此出处http://atong.blog.51cto.com/2393905/1343362
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: