第七天:cut

cut是一个选取命令,就是将一段数据经过分析,取出我们想要的。一般来说,选取信息通常是针对“行”来进行分析的,并不是整篇信息分析的。
格式:
cut  [-bn] [file] 或 cut [-c] [file]  或  cut [-df] [file]
使用说明
cut 命令从文件的每一行剪切字节、字符和字段并将这些字节、字符和字段写至标准输出。 如果不指定 File 参数,cut 命令将读取标准输入。必须指定 -b、-c 或 -f 标志之一。
主要参数 -b :以字节为单位进行分割。这些字节位置将忽略多字节字符边界,除非也指定了 -n 标志。 -c :以字符为单位进行分割。 -d :自定义分隔符,默认为制表符。 -f :与-d一起使用,指定显示哪个区域。 -n :取消分割多字节字符。仅和 -b 标志一起使用。如果字符的最后一个字节落在由 -b 标志的 List 参数指示的<br />范围之内,该字符将被写出;否则,该字符将被排除。
cut命令主要是接受三个定位方法:
第一,字节(bytes),用选项-b
第二,字符(characters),用选项-c
第三,域(fields),用选项-f
以“字节”定位
 提取每一行的第3个字节  who|cut -b 3
 提取第3,第4、第5和第8个字节 who|cut -b 3-5,8
 但有一点要注意,cut命令如果使用了-b选项,那么执行此命令时,cut会先把-b后面所有的定位进行从小到大排序,然后再提取
 who|cut -b 8,3-5 等同 who|cut -b 3-5,8
 who|cut -b -3 -3表示从第一个字节到第三个字节,而 who|cut -b 3- 3-表示从第三个字节到行尾。这两种情况下,都包括了第三个字节“c”
 who|cut -b -3,3-不会出现连续两个重叠
以字符为定位标志
who|cut -c 3-5,8 who输出的都是单字节字符,所以用-b和-c没有区别,如果你提取中文,区别就出来
 
以域为定位标志
 /etc/passwd的前五行内容 cat /etc/passwd|head -n 5 
 cat /etc/passwd|head -n 5|cut -d : -f 1 cat /etc/passwd|head -n 5|cut -d : -f 1,3-5

你可能感兴趣的:(linux,cut)