介绍
cut 译为“剪切, 切割” , 是一个强大文本处理工具,它可以将文本按列进行划分的文本处理。cut命令逐行读入文本,然后按列划分字段并进行提取、输出等操作。
语法
cut [options] filename
options参数说明
| 选项参数 | 功能 |
|---|---|
| -f 提取范围 | 列号,获取第几列 |
| -d 自定义分隔符 | 自定义分隔符,默认为制表符。 |
| -c 提取范围 | 以字符为单位进行分割 |
| -b 提取范围 | 以字节为单位进行分割。这些字节位置将忽略多字节字符边界,除非也指定了 -n 标志。 |
| -n | 与“-b”选项连用,不分割多字节字符; |
提取范围说明
| 提取范围 | 说明 |
|---|---|
| n- | 提取指定第n列或字符或字节后面所有数据 |
| n-m | 提取指定第n列或字符或字节到第m列或字符或字节中间的所有数据 |
| -m | 提取指定第m列或字符或字节前面所有数据 |
| n1,n2,... | 提前指定枚举列的所有数据 |
示例:切割提取指定列数据
cut1.txt文件数据准备
touch cut1.txt
编辑文件添加内容
AA itheima 11 XX
BB itcast 22 XXX
CC Shell 33 XXXX
DD it 44 XXXXXXX
提取文件中第一列数据
cut cut1.txt -d " " -f 1
提取文件中第一列,第三列, 枚举查找
cut cut1.txt -d " " -f 1,3
提取文件中第二列,第三列,第四列, 范围查找
提取文件中第一列后面所有列的数据
cut cut1.txt -d " " -f 2-
提起文件中结束列前面所有列的数据
cut -d " " -f -2 cut1.txt
# -2 提取指定列前面所有列数据
运行效果
示例: 切割提取指定字符数据
提取每行前3个字符
cut cut1.txt -c1-3
运行效果
提取每行第4个字符以后的数据
cut cut1.txt -c 4-
运行效果
提取每行第3个字符前面所有字符
cut cut1.txt -c -3
运行效果
示例:切割提取指定字节数据
提取字符串"abc传智播客" 前3个字节
echo "abc传智播客" | cut -b -3
运行效果
提取字符串"abc传智播客" 前4个字节
echo "abc传智播客" | cut -b -4
运行效果
提取字符串"abc传智播客" 前6个字节
echo "abc传智播客" | cut -b -6
# 由于linux系统默认utf-8码表, 所以一个汉字占3个字节
运行效果
提取字符串"abc传智播客" 前4个字节, 就可以将汉字 "传"输出,
echo "abc传智播客" | cut -nb -4
# -n 取消多字节字符分割直接输出
运行效果
示例:切割提取指定单词数据
在cut1.txt文件中切割出"itheima"
cat cut1.txt | grep itheima | cut -d " " -f 2
示例:切割提取bash进程的PID号
命令
ps -aux | grep 'bash' | head -n 1 | cut -d " " -f 8
运行效果
示例:切割提取IP地址
ifconfig | grep broadcast | cut -d " " -f 10
运行效果
小结
cut的作用
一个强大文本处理工具,它可以将文本按列进行划分的文本处理。cut命令逐行读入文本,然后按列划分字段并进行提取、输出等操作。
cut切割提取列
cut 文件或数据 -d 分隔符切割 -f 提取第X列
cut切割提取字符
cut 文件或数据 -c 提取字符范围
cut切割提取字节
cut 文件或数据 -nb 提取直接范围