一、cut作用 - remove sections from each line of files(man cut)
就是在文件中负责剪切数据,且以每一行为一个处理对象,类似 sed,这在处理文本数据时十分有用。
二、命令格式及定位方法
cut OPTION... [FILE]...
cut命令主要是接受三个定位方法:
1,字节(bytes,按从小到大顺序),用选项 -b
2,字符(characters,如果为中文可能就是两个字节了),用选项 -c
3,域(fields),用选项 -f
三、使用举例
1.提取第3个字节
ll /dev/sda*
brw-rw---- 1 root disk 8, 0 2012-03-20 13:13 /dev/sda
brw-rw---- 1 root disk 8, 1 2012-03-20 13:13 /dev/sda1
brw-rw---- 1 root disk 8, 2 2012-03-20 13:13 /dev/sda2
brw-rw---- 1 root disk 8, 3 2012-03-20 13:13 /dev/sda3
ll /dev/sda* |cut -b 3
w
w
w
w
2.提取多个字节
ll /dev/sda* |cut -b 1-8,12
brw-rw--1
brw-rw--1
brw-rw--1
brw-rw--1
3.关于字节的其他技巧
1-
-3
-3,3-
4.提取字符
跟基于字节差不多,但如果是中文(占多个字节)的话,提取字节可能就会乱码了。
5.提取域(这个最有用)
主要是指定一个间隔符( -d )和要提取的域( -f ),如下:
ll /dev/sda* |cut -d ' ' -f 1,7-9
brw-rw---- 2012-03-20 13:13 /dev/sda
brw-rw---- 2012-03-20 13:13 /dev/sda1
brw-rw---- 2012-03-20 13:13 /dev/sda2
brw-rw---- 2012-03-20 13:13 /dev/sda3
6.关于
提取域时,cut默认是以制表符(\t)区分的,要区分文本中的制表符和空格,可以使用命令:
sed -n l filename
xin\tjiang\tli\tzong$
xin\tjiang\tli\tzong$
$
cut只能处理以单个字符为分割符的文本内容,若连续多个空格(会占多个域),则比较麻烦。