cut

来源:互联网 发布:c语言获取随机数 编辑:程序博客网 时间:2024/06/01 10:26

1 .语法

cut [-bn] [file] 或 cut [-c] [file] 或 cut [-df] [file]

2 .主要参数

-b :以字节为单位进行分割。这些字节位置将忽略多字节字符边界,除非也指定了 -n 标志。

-c :以字符为单位进行分割。

-d :自定义分隔符,默认为制表符。

-f :与-d一起使用,指定显示哪个区域。

-n :取消分割多字节字符。仅和 -b 标志一起使用。如果字符的最后一个字节落在由 -b 标志的 List 参数指示的
范围之内,该字符将被写出;否则,该字符将被排除。

3 .cut命令主要是接受三个定位方法:

第一,字节(bytes),用选项-b

第二,字符(characters),用选项-c

第三,域(fields),用选项-f

4 .范围表示:

n:第n个字节/字符/字段

n-:从第n个字节/字符/字段到最后一个字节/字符/字段

n-m:从第n个字节/字符/字段到第m个字节/字符/字段,包括m

-m:从行的开头到第m个字节/字符/字段,包括m

-:从行开头到行的最后

5 .例子

(1). 提取每一行的第3个字节

cut -b 3

(2). 提取第3,第4、第5和第8个字节

cut -b 3-5,8

注意:cut会先把-b后面所有的定位进行从小到大排序,然后再提取

cut -b 8,3-5   //同上个效果相同

注意:-3表示从第一个字节到第三个字节,而3-表示从第三个字节到行尾。这两种情况下,都包括了第三个字节如果我执行cut -b -3,3-,输出整行,不会出现连续两个重叠的

(3).以字符为定位标志

-c则会以字符为单位,而-b只会以字节(8位二进制位)来计算

当遇到多字节字符时,可以使用-n选项,-n用于告诉cut不要将多字节字符拆开

//一样的效果cut -c 3cut -nb 3

(4).“域”的提取

设置“间隔符”,再设置“提取第几个域”

用-d来设置间隔符为冒号,然后用-f来设置我要取的是第一个域

cut -d : -f 1

(5).空格和制表符时,怎么分辨

sed -n l 文件名    //如果是制表符(TAB),那么会显示为\t符号,如果是空格,就会原样显示

(6).间隔符设置制表符

cut的-d选项的默认间隔符就是制表符,所以当你就是要使用制表符的时候,完全就可以省略-d选项,而直接用-f来取域就可以了

cut -d ' ' -f 1      //两个单引号之间要有一个空格,只能在-d后面设置一个空格,因为cut只允许间隔符是一个字符

注意:cut只擅长处理“以一个字符间隔”的文本内容

原创粉丝点击