【背景】
cut是一个将文本按列进行划分的文本处理工具。cut命令逐行读入文本,然后按列划分字段并进行提取、输出等操作。
【命令格式】
cut [option] filename
cat filename | cut [option]
可以看到,cut命令既可以用文件作为参数也可以接受标准输入。
【常见用法】
本次实验所用的文件text.txt的内容为:
11 Tom computer-science 4.0
12 Jack economic 3.8
13 Marry biology 3.9
14 Cherry mathematics 4.1
15 Jim chemistry 4.2
1.提取文件中的人名
cut -d ' ' -f 2 text.txt
Tom
Jack
Marry
Cherry
Jim
其中,-f选项指定需要提取的字段编号。
2.提取多个字段
(1)-f field_list:field_list为字段列表,指定需要提取的字段。
(2)-f N-:指从第N个字段到行尾。
(3)-f N-M:指从第N个字段到第M个字段。
(4)-f -N:指从行首到第N个字段。
3.设定定界符
cut的默认定界符是空格,但有些文件的定界符不是空格,此时可以用-d选项设定定界符。
echo 1:2:3:4 | cut -d ':' -f 3
3
这里设定了定界符为冒号,因此cut可以解析用冒号分隔的各个字段。
4.按字节/字符分割
cut命令最常见的-f选项按照字段分割文本,其实cut还支持按照字节或者字符分割文本。
(1)-c:按字符分割。
(2)-b:按字节分割。
例如需要输出文件每一行的前两个字符:
cut -c 1-2 text.txt
11
12
13
14
15