cut命令详解

该命令有两项功能,其一是用来显示文件的内容,它依次读取由参数file所指明的文件,将它们的内容输出到标准输出上;其二是连接两个或多个文件,如cut fl f2 > f3将把文件fl和f2的内容合并起来,然后通过输出重定向符“>”的作用,将它们放入文件f3中。
当文件较大时,文本在屏幕上迅速闪过(滚屏),用户往往看不清所显示的内容。因此,一般用more等命令分屏显示。
  为了控制滚屏,可以按Ctrl+S键,停止滚屏;按Ctrl+Q键可以恢复滚屏。按Ctrl+C(中断键可以终止该命令的执行,并且返回Shell提示符状态

语法格式:

#cut (选项) (参数)
选项:
-b:仅显示行中指定直接范围的内容;
-c:仅显示行中指定范围的字符;
-d:指定字段的分隔符,默认的字段分隔符为“TAB”;
-f:与-d一起使用,显示指定字段的内容;
-n:与“-b”选项连用,不分割多字节字符;
–complement:补足被选择的字节、字符或字段;
–out-delimiter=<字段分隔符>:指定输出内容是的字段分割符;
–help:显示指令的帮助信息;
–version:显示指令的版本信息。
参数:
文件:指定要进行内容过滤的文件
三个定位方法:
第一,字节(bytes),用选项-b,一个空格算一个字节,一个汉字算三个字节
第二,字符(characters),用选项-c
第三,域(fields),用选项-f
Cut的缺点是在处理多空格时。如果文件里面的某些域是由若干个空格来间隔的,那么用cut就有点麻烦了,因为cut只擅长处理“以一个字符间隔”的文本内容

各种事例:

#who |cut -b 3
cut命令详解_第1张图片
在这里插入图片描述

#cat /etc/passwd|cut -d : -f 1
cut命令详解_第2张图片
cut命令详解_第3张图片
#cat /etc/passwd|head -n 5|cut -d : -f 1,3-5,7
cut命令详解_第4张图片
事例3:按字符
按字符cut相对比较简单,中文字符和空格都算一个字符。

# date |cut -c 1-5
2011# date |cut -c 5,9,13
年月日
事例4:按域
按域cut
 以/etc/passwd文件为例:
# head -n5 /etc/passwd |cut -d : -f 1,3-5
root:0:0:root
bin:1:1:bin
daemon:2:2:daemon
adm:3:4:adm
lp:4:7:lp

-d指定域分隔符,-f 指定要剪出哪几个域,这个与awk的输出特定字段功能一样。
-d选项的默认间隔符就是制表符,所以当你就是要使用制表符的时候,完全就可以省略-d选项,而直接用-f来取域就可以了
cut命令详解_第5张图片

你可能感兴趣的:(shell)