cut [选项] [文件]
cut命令可以将每个文件中的选定部分打印到标准输出。当没有文件参数或文件不存在时,从标准输入读取数据。
(1).选项
-b,--bytes=[N-|N-M|-M] 只显示指定部分的字节 -c,--characters=[N-|N-M|-M] 只显示指定部分的字符 -f,--fields=[N-|N-M|-M] 只显示指定部分的字段。如果没有使用-s选项还会显示不包含分界符的行。一般与-d选项联合使用。 说明:N-表示从第N个字节、字符、字段到结尾;N-M表示从第N个字节、字符、字段到第M个字节、字符、字段;-M表示从第一个字节、字符、字段到第M个字节、字符、字段。 如果想要挑选几段,中间用逗号隔开 字节无法获取到中文,而字符可以。 -d,--delimiter=[分界符] 使用指定的分界符代替制表符作为区域分界 -n 和-b选项联合使用,不拆分多字节字符。即-b与-n一起使用后,可以获取到中文。 --complement 补全选中的字节、字符或域 -s,--only-delimited 不打印没有包含分界符的行 --output-delimiter=[字符串] 使用指定的字符串作为输出分界符,默认采用输入分界符
(2).实例
1)-f选项
[root@youxi1 ~]# head -5 /etc/passwd >passwd [root@youxi1 ~]# cat 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
//读取文件内容,以冒号作为分隔符分割字段,获取第1和第3个字段。输出时以|为分隔符 [root@youxi1 ~]# cut -f1,3 -d":" passwd --output-delimiter="|" root|0 bin|1 daemon|2 adm|3 lp|4
2)-b选项与-c选项的比较
[root@youxi1 ~]# vim a.txt 大河向东流啊 天上的星星参北斗啊 [root@youxi1 ~]# cut -b1 a.txt [root@youxi1 ~]# cut -b1 -n a.txt 大 天 [root@youxi1 ~]# cut -c1 a.txt 大 天