linux的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命令可以将一串字符作为列来显示,字符字段的记法:
- N-:从第N个字节、字符、字段到结尾;
- N-M:从第N个字节、字符、字段到第M个(包括M在内)字节、字符、字段;
- -M:从第1个字节、字符、字段到第M个(包括M在内)字节、字符、字段。
二、举例
以/etc/passwd的前五行内容为例
[root@bogon ~]# 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
截取用户名:-d来设置间隔符为冒号,然后用-f来设置我要取的是第一个域
[root@bogon ~]# head -5 /etc/passwd |cut -d : -f1 root bin daemon adm lp
截取第1,3到5,字段
[root@bogon ~]# head -5 /etc/passwd |cut -d : -f1,3-5 root:0:0:root bin:1:1:bin daemon:2:2:daemon adm:3:4:adm lp:4:7:lp
截取1到3个字符
[root@bogon ~]# head -5 /etc/passwd |cut -c1-3 roo bin dae adm lp:
截取前2个字符
[root@bogon ~]# head -5 /etc/passwd |cut -c-2 ro bi da ad lp
截取第5个字符开始到结尾
[root@bogon ~]# head -5 /etc/passwd |cut -c5- :x:0:0:root:/root:/bin/bash x:1:1:bin:/bin:/sbin/nologin on:x:2:2:daemon:/sbin:/sbin/nologin x:3:4:adm:/var/adm:/sbin/nologin :4:7:lp:/var/spool/lpd:/sbin/nologin