十分有用的cut剪切命令

一、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只能处理以单个字符为分割符的文本内容,若连续多个空格(会占多个域),则比较麻烦。

原文地址:https://www.cnblogs.com/xiangzi888/p/2408177.html