cut 命令的功能是对文件中的字段进行截取。
用法:cut OPTION... [FILE]...
选项:
-b, --bytes=LIST 以字节为单位截取
-c, --characters=LIST 以字符为单位截取
-d, --delimiter=DELIM 定义字段分隔符
-f, --fields=LIST 只保留指定的字段,如果不指定 -s 选项,也打印任何不包含分 隔符的行
-n 和 -b 一起使用,不拆分多字节字符
--complement 补充所选字节、字符或字段的集合
-s, --only-delimited 不打印没有字段分隔符的行
--output-delimiter=STRING 使用 STRING 作为输出分隔符 默认是使用输入分隔符
-z, --zero-terminated 去掉行分隔符,默认是换行符
--help 打印帮助文档
--version 打印版本信息
在使用 -b -c -f 之一时,LIST是一个范围,或者是用逗号分隔的多个范围:
N 第 N 个字节、字符、字段,从 1 开始数
N- 从第 N 个字节、字符、字段到行末
N-M 从第 N 到 M (包括) 个字节、字符、字段
-M 从第 1 到 M (包括) 个字节、字符、字段
使用示例:
我们对储存用户信息的文件/etc/passwd 进行查看:
[root@server ~]# head -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
对英文字母进行操作时,-b 和 -c 的效果一致,因为一个英文字母占一个字节:
# 第3个字节 [root@server ~]# head -5 /etc/passwd | cut -b3 o n e m : # 第5,6字节 [root@server ~]# head -5 /etc/passwd | cut -b5,6 :x x: on x: :4 # 第3个字符 [root@server ~]# head -5 /etc/passwd | cut -c3 o n e m : # 第5,6字符 [root@server ~]# head -5 /etc/passwd | cut -c5,6 :x x: on x: :4
-f的使用:
# 未指定字段分隔符,默认为空格,所以输出了整行 [root@server ~]# head -5 /etc/passwd | cut -f1 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 # 第1字段 [root@server ~]# head -5 /etc/passwd | cut -d":" -f1 root bin daemon adm lp # 从开头到第5字段 [root@server ~]# head -5 /etc/passwd | cut -d":" -f-5 root:x:0:0:root bin:x:1:1:bin daemon:x:2:2:daemon adm:x:3:4:adm lp:x:4:7:lp # 从第1字段到第4字段 [root@server ~]# head -5 /etc/passwd | cut -d":" -f1-4 root:x:0:0 bin:x:1:1 daemon:x:2:2 adm:x:3:4 lp:x:4:7
测试一个包含汉字的文件 :
[root@server ~]# cat hanzi 汉堡 薯条 可乐 鸡块 奶昔 # 使用字节模式,显示乱码 [root@server ~]# cut -b1 hanzi � � � � � # 改为字符模式,正常输出 [root@server ~]# cut -c1 hanzi 汉 薯 可 鸡 奶 [root@server ~]# cut -c2 hanzi 堡 条 乐 块 昔 # 也可以使用 -nb, 功能是将多字节的字符(比如汉字)看成整体 [root@server ~]# cut -nb1 hanzi 汉 薯 可 鸡 奶 [root@server ~]# cut -nb2 hanzi 堡 条 乐 块 昔



